在数据库迁移TypeORM(NodeJS)中一次迁移失败时如何回滚所有迁移

时间:2020-02-28 03:09:28

标签: migration typeorm

在同一任务中同时运行两个或多个迁移(例如,向上或向下迁移),而一次失败时,则仅回滚失败的迁移。我希望所有迁移都可以在失败时回滚。

示例:

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 :(得分:0)

根据typeorm MigrationExecutor,typeorm默认支持迁移中的事务。

但是,如果您使用的是mysql,请it can't rollback DDL statements