@warlock.js/cascade
Version:
ORM for managing databases
40 lines (39 loc) • 1.07 kB
JavaScript
class MigrationOffice {
/**
* Migrations list
*/
migrations = [];
/**
* Register a migration
*/
register(migration) {
const registeredMigration = {
...migration,
async executeUp() {
const blueprint = migration.blueprint.clone();
await migration.up(blueprint);
await blueprint.execute();
},
async executeDown() {
const blueprint = migration.blueprint.clone();
await migration.down(blueprint);
await blueprint.execute();
},
};
this.migrations.push(registeredMigration);
return this;
}
/**
* Get all migrations
*/
list() {
return this.migrations;
}
/**
* Get blueprints only
*/
blueprints() {
return this.migrations.map(migration => migration.blueprint);
}
}
const migrationOffice = new MigrationOffice();export{MigrationOffice,migrationOffice};//# sourceMappingURL=migration-office.js.map