payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
89 lines (88 loc) • 8.4 kB
JavaScript
/* eslint-disable no-restricted-syntax, no-await-in-loop */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "migrateReset", {
enumerable: true,
get: function() {
return migrateReset;
}
});
const _commitTransaction = require("../../utilities/commitTransaction");
const _initTransaction = require("../../utilities/initTransaction");
const _killTransaction = require("../../utilities/killTransaction");
const _getMigrations = require("./getMigrations");
const _readMigrationFiles = require("./readMigrationFiles");
async function migrateReset() {
const { payload } = this;
const migrationFiles = await (0, _readMigrationFiles.readMigrationFiles)({
payload
});
const { existingMigrations } = await (0, _getMigrations.getMigrations)({
payload
});
if (!existingMigrations?.length) {
payload.logger.info({
msg: 'No migrations to reset.'
});
return;
}
const req = {
payload
};
// Rollback all migrations in order
for (const migration of migrationFiles){
// Create or update migration in database
const existingMigration = existingMigrations.find((existing)=>existing.name === migration.name);
if (existingMigration) {
payload.logger.info({
msg: `Migrating down: ${migration.name}`
});
try {
const start = Date.now();
await (0, _initTransaction.initTransaction)(req);
await migration.down({
payload,
req
});
await payload.delete({
collection: 'payload-migrations',
req,
where: {
id: {
equals: existingMigration.id
}
}
});
await (0, _commitTransaction.commitTransaction)(req);
payload.logger.info({
msg: `Migrated down: ${migration.name} (${Date.now() - start}ms)`
});
} catch (err) {
await (0, _killTransaction.killTransaction)(req);
payload.logger.error({
err,
msg: `Error running migration ${migration.name}`
});
throw err;
}
}
}
// Delete dev migration
try {
await payload.delete({
collection: 'payload-migrations',
where: {
batch: {
equals: -1
}
}
});
} catch (err) {
payload.logger.error({
error: err,
msg: 'Error deleting dev migration'
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9taWdyYXRpb25zL21pZ3JhdGVSZXNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCwgbm8tYXdhaXQtaW4tbG9vcCAqL1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJhc2VEYXRhYmFzZUFkYXB0ZXIgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvY29tbWl0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBpbml0VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsga2lsbFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2tpbGxUcmFuc2FjdGlvbidcbmltcG9ydCB7IGdldE1pZ3JhdGlvbnMgfSBmcm9tICcuL2dldE1pZ3JhdGlvbnMnXG5pbXBvcnQgeyByZWFkTWlncmF0aW9uRmlsZXMgfSBmcm9tICcuL3JlYWRNaWdyYXRpb25GaWxlcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVSZXNldCh0aGlzOiBCYXNlRGF0YWJhc2VBZGFwdGVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcGF5bG9hZCB9ID0gdGhpc1xuICBjb25zdCBtaWdyYXRpb25GaWxlcyA9IGF3YWl0IHJlYWRNaWdyYXRpb25GaWxlcyh7IHBheWxvYWQgfSlcblxuICBjb25zdCB7IGV4aXN0aW5nTWlncmF0aW9ucyB9ID0gYXdhaXQgZ2V0TWlncmF0aW9ucyh7IHBheWxvYWQgfSlcblxuICBpZiAoIWV4aXN0aW5nTWlncmF0aW9ucz8ubGVuZ3RoKSB7XG4gICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogJ05vIG1pZ3JhdGlvbnMgdG8gcmVzZXQuJyB9KVxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgcmVxID0geyBwYXlsb2FkIH0gYXMgUGF5bG9hZFJlcXVlc3RcblxuICAvLyBSb2xsYmFjayBhbGwgbWlncmF0aW9ucyBpbiBvcmRlclxuICBmb3IgKGNvbnN0IG1pZ3JhdGlvbiBvZiBtaWdyYXRpb25GaWxlcykge1xuICAgIC8vIENyZWF0ZSBvciB1cGRhdGUgbWlncmF0aW9uIGluIGRhdGFiYXNlXG4gICAgY29uc3QgZXhpc3RpbmdNaWdyYXRpb24gPSBleGlzdGluZ01pZ3JhdGlvbnMuZmluZChcbiAgICAgIChleGlzdGluZykgPT4gZXhpc3RpbmcubmFtZSA9PT0gbWlncmF0aW9uLm5hbWUsXG4gICAgKVxuICAgIGlmIChleGlzdGluZ01pZ3JhdGlvbikge1xuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGluZyBkb3duOiAke21pZ3JhdGlvbi5uYW1lfWAgfSlcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgICAgICBhd2FpdCBpbml0VHJhbnNhY3Rpb24ocmVxKVxuICAgICAgICBhd2FpdCBtaWdyYXRpb24uZG93bih7IHBheWxvYWQsIHJlcSB9KVxuICAgICAgICBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgY29sbGVjdGlvbjogJ3BheWxvYWQtbWlncmF0aW9ucycsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICBlcXVhbHM6IGV4aXN0aW5nTWlncmF0aW9uLmlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG4gICAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRlZCBkb3duOiAgJHttaWdyYXRpb24ubmFtZX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24ocmVxKVxuICAgICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVyciwgbXNnOiBgRXJyb3IgcnVubmluZyBtaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX1gIH0pXG4gICAgICAgIHRocm93IGVyclxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIERlbGV0ZSBkZXYgbWlncmF0aW9uXG4gIHRyeSB7XG4gICAgYXdhaXQgcGF5bG9hZC5kZWxldGUoe1xuICAgICAgY29sbGVjdGlvbjogJ3BheWxvYWQtbWlncmF0aW9ucycsXG4gICAgICB3aGVyZToge1xuICAgICAgICBiYXRjaDoge1xuICAgICAgICAgIGVxdWFsczogLTEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKHsgZXJyb3I6IGVyciwgbXNnOiAnRXJyb3IgZGVsZXRpbmcgZGV2IG1pZ3JhdGlvbicgfSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1pZ3JhdGVSZXNldCIsInBheWxvYWQiLCJtaWdyYXRpb25GaWxlcyIsInJlYWRNaWdyYXRpb25GaWxlcyIsImV4aXN0aW5nTWlncmF0aW9ucyIsImdldE1pZ3JhdGlvbnMiLCJsZW5ndGgiLCJsb2dnZXIiLCJpbmZvIiwibXNnIiwicmVxIiwibWlncmF0aW9uIiwiZXhpc3RpbmdNaWdyYXRpb24iLCJmaW5kIiwiZXhpc3RpbmciLCJuYW1lIiwic3RhcnQiLCJEYXRlIiwibm93IiwiaW5pdFRyYW5zYWN0aW9uIiwiZG93biIsImRlbGV0ZSIsImNvbGxlY3Rpb24iLCJ3aGVyZSIsImlkIiwiZXF1YWxzIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJlcnIiLCJraWxsVHJhbnNhY3Rpb24iLCJlcnJvciIsImJhdGNoIl0sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7Ozs7K0JBVW5DQTs7O2VBQUFBOzs7bUNBTlk7aUNBQ0Y7aUNBQ0E7K0JBQ0Y7b0NBQ0s7QUFFNUIsZUFBZUE7SUFDcEIsTUFBTSxFQUFFQyxPQUFPLEVBQUUsR0FBRyxJQUFJO0lBQ3hCLE1BQU1DLGlCQUFpQixNQUFNQyxJQUFBQSxzQ0FBa0IsRUFBQztRQUFFRjtJQUFRO0lBRTFELE1BQU0sRUFBRUcsa0JBQWtCLEVBQUUsR0FBRyxNQUFNQyxJQUFBQSw0QkFBYSxFQUFDO1FBQUVKO0lBQVE7SUFFN0QsSUFBSSxDQUFDRyxvQkFBb0JFLFFBQVE7UUFDL0JMLFFBQVFNLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQUVDLEtBQUs7UUFBMEI7UUFDckQ7SUFDRjtJQUVBLE1BQU1DLE1BQU07UUFBRVQ7SUFBUTtJQUV0QixtQ0FBbUM7SUFDbkMsS0FBSyxNQUFNVSxhQUFhVCxlQUFnQjtRQUN0Qyx5Q0FBeUM7UUFDekMsTUFBTVUsb0JBQW9CUixtQkFBbUJTLElBQUksQ0FDL0MsQ0FBQ0MsV0FBYUEsU0FBU0MsSUFBSSxLQUFLSixVQUFVSSxJQUFJO1FBRWhELElBQUlILG1CQUFtQjtZQUNyQlgsUUFBUU0sTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQUVDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUUsVUFBVUksSUFBSSxDQUFDLENBQUM7WUFBQztZQUMvRCxJQUFJO2dCQUNGLE1BQU1DLFFBQVFDLEtBQUtDLEdBQUc7Z0JBQ3RCLE1BQU1DLElBQUFBLGdDQUFlLEVBQUNUO2dCQUN0QixNQUFNQyxVQUFVUyxJQUFJLENBQUM7b0JBQUVuQjtvQkFBU1M7Z0JBQUk7Z0JBQ3BDLE1BQU1ULFFBQVFvQixNQUFNLENBQUM7b0JBQ25CQyxZQUFZO29CQUNaWjtvQkFDQWEsT0FBTzt3QkFDTEMsSUFBSTs0QkFDRkMsUUFBUWIsa0JBQWtCWSxFQUFFO3dCQUM5QjtvQkFDRjtnQkFDRjtnQkFDQSxNQUFNRSxJQUFBQSxvQ0FBaUIsRUFBQ2hCO2dCQUN4QlQsUUFBUU0sTUFBTSxDQUFDQyxJQUFJLENBQUM7b0JBQUVDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUUsVUFBVUksSUFBSSxDQUFDLEVBQUUsRUFBRUUsS0FBS0MsR0FBRyxLQUFLRixNQUFNLEdBQUcsQ0FBQztnQkFBQztZQUMzRixFQUFFLE9BQU9XLEtBQWM7Z0JBQ3JCLE1BQU1DLElBQUFBLGdDQUFlLEVBQUNsQjtnQkFDdEJULFFBQVFNLE1BQU0sQ0FBQ3NCLEtBQUssQ0FBQztvQkFBRUY7b0JBQUtsQixLQUFLLENBQUMsd0JBQXdCLEVBQUVFLFVBQVVJLElBQUksQ0FBQyxDQUFDO2dCQUFDO2dCQUM3RSxNQUFNWTtZQUNSO1FBQ0Y7SUFDRjtJQUVBLHVCQUF1QjtJQUN2QixJQUFJO1FBQ0YsTUFBTTFCLFFBQVFvQixNQUFNLENBQUM7WUFDbkJDLFlBQVk7WUFDWkMsT0FBTztnQkFDTE8sT0FBTztvQkFDTEwsUUFBUSxDQUFDO2dCQUNYO1lBQ0Y7UUFDRjtJQUNGLEVBQUUsT0FBT0UsS0FBYztRQUNyQjFCLFFBQVFNLE1BQU0sQ0FBQ3NCLEtBQUssQ0FBQztZQUFFQSxPQUFPRjtZQUFLbEIsS0FBSztRQUErQjtJQUN6RTtBQUNGIn0=