UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

73 lines (72 loc) 8.02 kB
/* eslint-disable no-restricted-syntax, no-await-in-loop */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "migrateDown", { enumerable: true, get: function() { return migrateDown; } }); 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 migrateDown() { const { payload } = this; const migrationFiles = await (0, _readMigrationFiles.readMigrationFiles)({ payload }); const { existingMigrations, latestBatch } = await (0, _getMigrations.getMigrations)({ payload }); if (!existingMigrations?.length) { payload.logger.info({ msg: 'No migrations to rollback.' }); return; } payload.logger.info({ msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).` }); const latestBatchMigrations = existingMigrations.filter(({ batch })=>batch === latestBatch); for (const migration of latestBatchMigrations){ const migrationFile = migrationFiles.find((m)=>m.name === migration.name); if (!migrationFile) { throw new Error(`Migration ${migration.name} not found locally.`); } const start = Date.now(); const req = { payload }; try { payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` }); await (0, _initTransaction.initTransaction)(req); await migrationFile.down({ payload, req }); payload.logger.info({ msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)` }); // Waiting for implementation here await payload.delete({ id: migration.id, collection: 'payload-migrations', req }); await (0, _commitTransaction.commitTransaction)(req); } catch (err) { await (0, _killTransaction.killTransaction)(req); payload.logger.error({ err, msg: `Error running migration ${migrationFile.name}` }); process.exit(1); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9taWdyYXRpb25zL21pZ3JhdGVEb3duLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4LCBuby1hd2FpdC1pbi1sb29wICovXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgQmFzZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9pbml0VHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBraWxsVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMva2lsbFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgZ2V0TWlncmF0aW9ucyB9IGZyb20gJy4vZ2V0TWlncmF0aW9ucydcbmltcG9ydCB7IHJlYWRNaWdyYXRpb25GaWxlcyB9IGZyb20gJy4vcmVhZE1pZ3JhdGlvbkZpbGVzJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWlncmF0ZURvd24odGhpczogQmFzZURhdGFiYXNlQWRhcHRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBheWxvYWQgfSA9IHRoaXNcbiAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCByZWFkTWlncmF0aW9uRmlsZXMoeyBwYXlsb2FkIH0pXG5cbiAgY29uc3QgeyBleGlzdGluZ01pZ3JhdGlvbnMsIGxhdGVzdEJhdGNoIH0gPSBhd2FpdCBnZXRNaWdyYXRpb25zKHtcbiAgICBwYXlsb2FkLFxuICB9KVxuXG4gIGlmICghZXhpc3RpbmdNaWdyYXRpb25zPy5sZW5ndGgpIHtcbiAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiAnTm8gbWlncmF0aW9ucyB0byByb2xsYmFjay4nIH0pXG4gICAgcmV0dXJuXG4gIH1cblxuICBwYXlsb2FkLmxvZ2dlci5pbmZvKHtcbiAgICBtc2c6IGBSb2xsaW5nIGJhY2sgYmF0Y2ggJHtsYXRlc3RCYXRjaH0gY29uc2lzdGluZyBvZiAke2V4aXN0aW5nTWlncmF0aW9ucy5sZW5ndGh9IG1pZ3JhdGlvbihzKS5gLFxuICB9KVxuXG4gIGNvbnN0IGxhdGVzdEJhdGNoTWlncmF0aW9ucyA9IGV4aXN0aW5nTWlncmF0aW9ucy5maWx0ZXIoKHsgYmF0Y2ggfSkgPT4gYmF0Y2ggPT09IGxhdGVzdEJhdGNoKVxuXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIGxhdGVzdEJhdGNoTWlncmF0aW9ucykge1xuICAgIGNvbnN0IG1pZ3JhdGlvbkZpbGUgPSBtaWdyYXRpb25GaWxlcy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1pZ3JhdGlvbi5uYW1lKVxuICAgIGlmICghbWlncmF0aW9uRmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0gbm90IGZvdW5kIGxvY2FsbHkuYClcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KClcbiAgICBjb25zdCByZXEgPSB7IHBheWxvYWQgfSBhcyBQYXlsb2FkUmVxdWVzdFxuXG4gICAgdHJ5IHtcbiAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpbmcgZG93bjogJHttaWdyYXRpb25GaWxlLm5hbWV9YCB9KVxuICAgICAgYXdhaXQgaW5pdFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIGF3YWl0IG1pZ3JhdGlvbkZpbGUuZG93bih7IHBheWxvYWQsIHJlcSB9KVxuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgICAgIG1zZzogYE1pZ3JhdGVkIGRvd246ICAke21pZ3JhdGlvbkZpbGUubmFtZX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWAsXG4gICAgICB9KVxuICAgICAgLy8gV2FpdGluZyBmb3IgaW1wbGVtZW50YXRpb24gaGVyZVxuICAgICAgYXdhaXQgcGF5bG9hZC5kZWxldGUoe1xuICAgICAgICBpZDogbWlncmF0aW9uLmlkLFxuICAgICAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1taWdyYXRpb25zJyxcbiAgICAgICAgcmVxLFxuICAgICAgfSlcblxuICAgICAgYXdhaXQgY29tbWl0VHJhbnNhY3Rpb24ocmVxKVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKHJlcSlcbiAgICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKHtcbiAgICAgICAgZXJyLFxuICAgICAgICBtc2c6IGBFcnJvciBydW5uaW5nIG1pZ3JhdGlvbiAke21pZ3JhdGlvbkZpbGUubmFtZX1gLFxuICAgICAgfSlcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1pZ3JhdGVEb3duIiwicGF5bG9hZCIsIm1pZ3JhdGlvbkZpbGVzIiwicmVhZE1pZ3JhdGlvbkZpbGVzIiwiZXhpc3RpbmdNaWdyYXRpb25zIiwibGF0ZXN0QmF0Y2giLCJnZXRNaWdyYXRpb25zIiwibGVuZ3RoIiwibG9nZ2VyIiwiaW5mbyIsIm1zZyIsImxhdGVzdEJhdGNoTWlncmF0aW9ucyIsImZpbHRlciIsImJhdGNoIiwibWlncmF0aW9uIiwibWlncmF0aW9uRmlsZSIsImZpbmQiLCJtIiwibmFtZSIsIkVycm9yIiwic3RhcnQiLCJEYXRlIiwibm93IiwicmVxIiwiaW5pdFRyYW5zYWN0aW9uIiwiZG93biIsImRlbGV0ZSIsImlkIiwiY29sbGVjdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwiZXJyIiwia2lsbFRyYW5zYWN0aW9uIiwiZXJyb3IiLCJwcm9jZXNzIiwiZXhpdCJdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEOzs7OytCQVVuQ0E7OztlQUFBQTs7O21DQU5ZO2lDQUNGO2lDQUNBOytCQUNGO29DQUNLO0FBRTVCLGVBQWVBO0lBQ3BCLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUcsSUFBSTtJQUN4QixNQUFNQyxpQkFBaUIsTUFBTUMsSUFBQUEsc0NBQWtCLEVBQUM7UUFBRUY7SUFBUTtJQUUxRCxNQUFNLEVBQUVHLGtCQUFrQixFQUFFQyxXQUFXLEVBQUUsR0FBRyxNQUFNQyxJQUFBQSw0QkFBYSxFQUFDO1FBQzlETDtJQUNGO0lBRUEsSUFBSSxDQUFDRyxvQkFBb0JHLFFBQVE7UUFDL0JOLFFBQVFPLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQUVDLEtBQUs7UUFBNkI7UUFDeEQ7SUFDRjtJQUVBVCxRQUFRTyxNQUFNLENBQUNDLElBQUksQ0FBQztRQUNsQkMsS0FBSyxDQUFDLG1CQUFtQixFQUFFTCxZQUFZLGVBQWUsRUFBRUQsbUJBQW1CRyxNQUFNLENBQUMsY0FBYyxDQUFDO0lBQ25HO0lBRUEsTUFBTUksd0JBQXdCUCxtQkFBbUJRLE1BQU0sQ0FBQyxDQUFDLEVBQUVDLEtBQUssRUFBRSxHQUFLQSxVQUFVUjtJQUVqRixLQUFLLE1BQU1TLGFBQWFILHNCQUF1QjtRQUM3QyxNQUFNSSxnQkFBZ0JiLGVBQWVjLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUtKLFVBQVVJLElBQUk7UUFDMUUsSUFBSSxDQUFDSCxlQUFlO1lBQ2xCLE1BQU0sSUFBSUksTUFBTSxDQUFDLFVBQVUsRUFBRUwsVUFBVUksSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2xFO1FBRUEsTUFBTUUsUUFBUUMsS0FBS0MsR0FBRztRQUN0QixNQUFNQyxNQUFNO1lBQUV0QjtRQUFRO1FBRXRCLElBQUk7WUFDRkEsUUFBUU8sTUFBTSxDQUFDQyxJQUFJLENBQUM7Z0JBQUVDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUssY0FBY0csSUFBSSxDQUFDLENBQUM7WUFBQztZQUNuRSxNQUFNTSxJQUFBQSxnQ0FBZSxFQUFDRDtZQUN0QixNQUFNUixjQUFjVSxJQUFJLENBQUM7Z0JBQUV4QjtnQkFBU3NCO1lBQUk7WUFDeEN0QixRQUFRTyxNQUFNLENBQUNDLElBQUksQ0FBQztnQkFDbEJDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRUssY0FBY0csSUFBSSxDQUFDLEVBQUUsRUFBRUcsS0FBS0MsR0FBRyxLQUFLRixNQUFNLEdBQUcsQ0FBQztZQUN4RTtZQUNBLGtDQUFrQztZQUNsQyxNQUFNbkIsUUFBUXlCLE1BQU0sQ0FBQztnQkFDbkJDLElBQUliLFVBQVVhLEVBQUU7Z0JBQ2hCQyxZQUFZO2dCQUNaTDtZQUNGO1lBRUEsTUFBTU0sSUFBQUEsb0NBQWlCLEVBQUNOO1FBQzFCLEVBQUUsT0FBT08sS0FBYztZQUNyQixNQUFNQyxJQUFBQSxnQ0FBZSxFQUFDUjtZQUN0QnRCLFFBQVFPLE1BQU0sQ0FBQ3dCLEtBQUssQ0FBQztnQkFDbkJGO2dCQUNBcEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFSyxjQUFjRyxJQUFJLENBQUMsQ0FBQztZQUN0RDtZQUNBZSxRQUFRQyxJQUFJLENBQUM7UUFDZjtJQUNGO0FBQ0YifQ==