Как откатить все миграции, если одна миграция завершается неудачно в миграциях базы данных TypeORM (NodeJS) - PullRequest
0 голосов
/ 28 февраля 2020

Когда две или более миграций выполняются вместе во время одной и той же задачи (например, миграция вверх или вниз), и одна из них завершается неудачно, выполняется откат только неудачной миграции. Я хочу, чтобы все миграции были откатаны, если одна из них не удалась.

Пример:

export class createRbacs1582769140618 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<any> {
        await queryRunner.createTable(
            new Table({
                name: "fake_table",
                columns: [
                    {
                        name: "id",
                        type: "int"
                    }
                ]
            })
        );
        await queryRunner.dropTable("not_exits_table");
    }

    public async down(queryRunner: QueryRunner): Promise<any> {}
}

Хотя задача миграции не записывается в таблицу миграции, fake_table все еще создано

1 Ответ

0 голосов
/ 24 марта 2020

Согласно typeorm MigrationExecutor , typeorm по умолчанию поддерживает транзакцию при миграции.

Но если вы используете mysql, , он не сможет откатить операторы DDL .

...