db-migrate-cli
Version:
A CLI tool for managing database migrations
86 lines (69 loc) • 1.99 kB
JavaScript
const Migration = require("../models/migration");
const BaseDAL = require("./base-dal");
class MigrationDAL extends BaseDAL {
constructor() {
super();
}
addMigration = async (migration, batch) => {
try {
const result = await this.executeStoredProcedure("db_cli_add_migration", [
migration,
batch,
]);
return true;
} catch (err) {
console.log(err);
}
return false;
};
deleteMigration = async (migrationId) => {
try {
const result = await this.executeStoredProcedure("db_cli_delete_migration", [
migrationId,
]);
return true;
} catch (err) {
console.log(err);
}
return false;
};
getMigrations = async () => {
try {
const result = await this.executeStoredProcedure("db_cli_get_migrations");
if (this.hasResponse(result)) {
const migrations = result[0].map(({ id, migration, batch }) => {
const migrationModel = new Migration();
migrationModel.id = id;
migrationModel.migration = migration;
migrationModel.batch = batch;
return migrationModel;
});
return migrations;
}
} catch (err) {
console.log(err);
}
return [];
};
getLastBatchMigrations = async () => {
try {
const result = await this.executeStoredProcedure(
"db_cli_get_last_batch_migrations"
);
if (this.hasResponse(result)) {
const migrations = result[0].map(({ id, migration, batch }) => {
const migrationModel = new Migration();
migrationModel.id = id;
migrationModel.migration = migration;
migrationModel.batch = batch;
return migrationModel;
});
return migrations;
}
} catch (err) {
console.log(err);
}
return [];
};
}
module.exports = new MigrationDAL();