Sequelize.js 如何捕获Sequelize迁移错误并防止将迁移添加到SequelizeMeta表中
我最近开始尝试使用Sequelize cli进行Sequelize迁移。我注意到,如果迁移脚本抛出错误(使用try-catch块),sequelize cli仍会使用迁移更新SequelizeMeta表,就好像迁移成功一样Sequelize.js 如何捕获Sequelize迁移错误并防止将迁移添加到SequelizeMeta表中,sequelize.js,sequelize-cli,Sequelize.js,Sequelize Cli,我最近开始尝试使用Sequelize cli进行Sequelize迁移。我注意到,如果迁移脚本抛出错误(使用try-catch块),sequelize cli仍会使用迁移更新SequelizeMeta表,就好像迁移成功一样 捕获错误并防止Sequelize在“向上”时将迁移输入SequelizeMeta表,以及相反地防止在“向下”脚本失败时删除迁移的最佳方法是什么?使用事务实现回滚由于以下异常而导致的所有迁移更改: up: (queryInterface) => queryInte
捕获错误并防止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方法调用中指示事务
请记住,并非所有RDBMS都支持结构更改回滚。为什么不喜欢抛出异常?正如我在问题中所解释的,Sequelize cli确实抛出了一个异常,但Sequelize cli仍然更新SequelizeMeta表,就好像迁移成功一样。