diff --git a/packages/cli/src/commands/db/revert.ts b/packages/cli/src/commands/db/revert.ts index 56de3b5663..07f0a09e02 100644 --- a/packages/cli/src/commands/db/revert.ts +++ b/packages/cli/src/commands/db/revert.ts @@ -4,6 +4,8 @@ import { DataSource as Connection } from 'typeorm'; import { LoggerProxy } from 'n8n-workflow'; import { getLogger } from '@/Logger'; import { getConnectionOptions } from '@/Db'; +import type { Migration } from '@db/types'; +import { wrapMigration } from '@db/utils/migrationHelpers'; import config from '@/config'; export class DbRevertMigrationCommand extends Command { @@ -34,6 +36,8 @@ export class DbRevertMigrationCommand extends Command { logging: ['query', 'error', 'schema'], }; + (connectionOptions.migrations as Migration[]).forEach(wrapMigration); + this.connection = new Connection(connectionOptions); await this.connection.initialize(); await this.connection.undoLastMigration(); diff --git a/packages/cli/src/databases/utils/migrationHelpers.ts b/packages/cli/src/databases/utils/migrationHelpers.ts index 21d731e39a..0221e7345d 100644 --- a/packages/cli/src/databases/utils/migrationHelpers.ts +++ b/packages/cli/src/databases/utils/migrationHelpers.ts @@ -72,12 +72,12 @@ export const wrapMigration = (migration: Migration) => { const { up, down } = migration.prototype; Object.assign(migration.prototype, { - up: async (queryRunner: QueryRunner) => { + async up(queryRunner: QueryRunner) { logMigrationStart(migrationName); await up.call(this, { queryRunner, ...context }); logMigrationEnd(migrationName); }, - down: async (queryRunner: QueryRunner) => { + async down(queryRunner: QueryRunner) { await down?.call(this, { queryRunner, ...context }); }, }); diff --git a/packages/cli/test/integration/shared/testDb.ts b/packages/cli/test/integration/shared/testDb.ts index 4e5f4e9528..c9df9026b8 100644 --- a/packages/cli/test/integration/shared/testDb.ts +++ b/packages/cli/test/integration/shared/testDb.ts @@ -61,9 +61,7 @@ export async function init() { if (dbType === 'sqlite') { // no bootstrap connection required await Db.init(getSqliteOptions({ name: testDbName })); - } - - if (dbType === 'postgresdb') { + } else if (dbType === 'postgresdb') { let bootstrapPostgres; const pgOptions = getBootstrapDBOptions('postgres'); @@ -92,9 +90,7 @@ export async function init() { await bootstrapPostgres.destroy(); await Db.init(getDBOptions('postgres', testDbName)); - } - - if (dbType === 'mysqldb') { + } else if (dbType === 'mysqldb' || dbType === 'mariadb') { const bootstrapMysql = await new Connection(getBootstrapDBOptions('mysql')).initialize(); await bootstrapMysql.query(`CREATE DATABASE ${testDbName}`); await bootstrapMysql.destroy();