Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/strapi-database/lib/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
const debug = require('debug')('strapi-database:migration');
const { isFunction, get } = require('lodash/fp');
class MigrationManager {
constructor(db) {
debug('Initialize migration manager');
this.db = db;
this.migrations = [];
}
register(migration) {
debug('Register migration');
this.migrations.push(migration);
}
async run(fn, options, context = {}) {
debug('Run migration');
await this.runBefore(options, context);
await fn(options, context);
await this.runAfter(options, context);
}
async shouldRun({ migration, step, options, context }) {
const method = migration[step];
const shouldRunMethod = get(`shouldRun.${step}`, migration, null);
if (!isFunction(method)) {
return false;
}
if (!isFunction(shouldRunMethod)) {
return true;
}
return shouldRunMethod(options, context);
}
async runBefore(options, context) {
debug('Run before migrations');
for (const migration of this.migrations) {
const willRunStep = await this.shouldRun({ migration, step: 'before', options, context });
if (willRunStep) {
await migration.before(options, context);
}
}
}
async runAfter(options, context) {
debug('Run after migrations');
for (const migration of this.migrations.slice(0).reverse()) {
const willRunStep = await this.shouldRun({ migration, step: 'after', options, context });
if (willRunStep) {
await migration.after(options, context);
}
}
}
}
module.exports = strapi => {
return new MigrationManager(strapi);
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]-- |