如何捕获Sequelize迁移错误并防止将迁移添加到SequelizeMeta表中



我最近开始尝试使用Sequelize-cli进行Sequelize迁移。我注意到,如果迁移脚本抛出错误(使用try-catch块(,sequelize-cli仍然会用迁移来更新SequelizeMeta表,就好像它成功了一样。

捕捉错误并防止Sequelize在"向上"时将迁移输入SequelizeMeta表,反之,在"向下"脚本失败时防止删除迁移的最佳方法是什么?

使用事务来回滚由于以下异常引起的所有迁移更改:

up: (queryInterface) => queryInterface.sequelize.transaction(
async (transaction) => {
await queryInterface.createTable(table, attributes, { transaction });
if (some_condition) {
throw new Error('Error while migrating');
}
}
),

不要忘记在所有Sequelize方法调用中指示transaction

请记住,并非所有RDBMS支持结构的更改都会回滚。

最新更新