morpheus4j
Version:
Morpheus is a migration tool for Neo4j. It aims to be a simple and intuitive way to migrate your database.
51 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const base_command_1 = require("../base-command");
const connection_1 = require("../neo4j/connection");
const file_service_1 = require("../services/file.service");
const migrate_service_1 = require("../services/migrate.service");
const neo4j_repository_1 = require("../services/neo4j.repository");
const types_1 = require("../types");
class Migrate extends base_command_1.BaseCommand {
static aliases = [];
static description = 'Execute pending database migrations in sequential order';
static examples = [
'<%= config.bin %> migrate',
'<%= config.bin %> migrate -m ~/path/to/migrations',
'<%= config.bin %> migrate --config ./custom-config.json',
'<%= config.bin %> migrate --dry-run',
'<%= config.bin %> migrate --transaction-mode=PER_STATEMENT',
];
static flags = {
...base_command_1.BaseCommand.flags,
'dry-run': core_1.Flags.boolean({
default: false,
description: 'Perform a dry run - no changes will be made to the database',
}),
'transaction-mode': core_1.Flags.option({
default: types_1.TransactionMode.PER_MIGRATION,
description: 'Transaction mode',
options: [types_1.TransactionMode.PER_MIGRATION, types_1.TransactionMode.PER_STATEMENT],
})(),
};
async run() {
try {
const { flags } = await this.parse(Migrate);
const config = this.getConfig();
const connection = await (0, connection_1.getDatabaseConnection)(config);
const repository = new neo4j_repository_1.Repository(connection);
const fileService = new file_service_1.FileService(config);
await new migrate_service_1.MigrationService(repository, fileService).migrate({
dryRun: flags['dry-run'],
transactionMode: flags['transaction-mode'],
});
await connection.close();
}
catch (error) {
this.error(error instanceof Error ? error.message : String(error));
}
}
}
exports.default = Migrate;
//# sourceMappingURL=migrate.js.map