UNPKG

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
"use strict"; 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;