pg-flyway
Version:
Migration tool for PostgreSQL database, NodeJS version of Java migration tool - flyway (not wrapper for https://flywaydb.org/documentation/commandline)
35 lines (34 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateEmptyMigrationService = void 0;
const date_fns_1 = require("date-fns");
const log4js_1 = require("log4js");
const promises_1 = require("node:fs/promises");
const node_path_1 = require("node:path");
const get_log_level_1 = require("../utils/get-log-level");
class CreateEmptyMigrationService {
constructor(options) {
this.options = options;
this.logger = (0, log4js_1.getLogger)('create');
this.logger.level = (0, get_log_level_1.getLogLevel)();
}
async createEmptyMigration({ name, version }) {
this.logger.info(`Name: ${name}`);
if (version) {
this.logger.info(`Version: ${version}`);
}
this.logger.info(`Locations: ${this.options.locations.join(',')}`);
const migrationName = [
'V',
version || (0, date_fns_1.format)(new Date(), 'yyyyMMddkkmm'),
this.options.sqlMigrationSeparator,
name.split(' ').join('-'),
this.options.sqlMigrationSuffixes[0],
].join('');
const migrationFullname = (0, node_path_1.join)(this.options.locations[0], migrationName);
await (0, promises_1.mkdir)((0, node_path_1.dirname)(migrationFullname), { recursive: true });
await (0, promises_1.writeFile)(migrationFullname, 'SELECT 1;');
this.logger.info(`Migration "${migrationFullname}" was created successfully!`);
}
}
exports.CreateEmptyMigrationService = CreateEmptyMigrationService;