64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
var umzug = require('umzug');
|
|
var common = require('./common.js');
|
|
var index = require('./internal-migrations/index.js');
|
|
var storage = require('./storage.js');
|
|
var logger = require('./logger.js');
|
|
|
|
const createInternalMigrationProvider = (db)=>{
|
|
const context = {
|
|
db
|
|
};
|
|
const migrations = [
|
|
...index.internalMigrations
|
|
];
|
|
const umzugProvider = new umzug.Umzug({
|
|
storage: storage.createStorage({
|
|
db,
|
|
tableName: 'strapi_migrations_internal'
|
|
}),
|
|
logger: {
|
|
info (message) {
|
|
// NOTE: only log internal migration in debug mode
|
|
db.logger.debug(logger.transformLogMessage('info', message));
|
|
},
|
|
warn (message) {
|
|
db.logger.warn(logger.transformLogMessage('warn', message));
|
|
},
|
|
error (message) {
|
|
db.logger.error(logger.transformLogMessage('error', message));
|
|
},
|
|
debug (message) {
|
|
db.logger.debug(logger.transformLogMessage('debug', message));
|
|
}
|
|
},
|
|
context,
|
|
migrations: ()=>migrations.map((migration)=>{
|
|
return {
|
|
name: migration.name,
|
|
up: common.wrapTransaction(context.db)(migration.up),
|
|
down: common.wrapTransaction(context.db)(migration.down)
|
|
};
|
|
})
|
|
});
|
|
return {
|
|
async register (migration) {
|
|
migrations.push(migration);
|
|
},
|
|
async shouldRun () {
|
|
const pendingMigrations = await umzugProvider.pending();
|
|
return pendingMigrations.length > 0;
|
|
},
|
|
async up () {
|
|
await umzugProvider.up();
|
|
},
|
|
async down () {
|
|
await umzugProvider.down();
|
|
}
|
|
};
|
|
};
|
|
|
|
exports.createInternalMigrationProvider = createInternalMigrationProvider;
|
|
//# sourceMappingURL=internal.js.map
|