我有一个简单的迁移,可以重命名列。迁移文件如下所示:
const tableName= 'aTable';
module.exports = {
up: async (queryInterface, Sequelize) => {
queryInterface.renameColumn(tableName, 'oldName', 'newName');
},
down: async (queryInterface, Sequelize) => {
queryInterface.renameColumn(tableName, 'newName', 'oldName');
},
};
当我应用迁移时,我得到以下输出:
== migrateFile: migrating =======
== migrateFile: migrated (0.071s)
然后当我使用该模型时,出现以下错误:
name: 'SequelizeDatabaseError',
parent: error: column aTable.newName does not exist
如果我打印出列,我会看到 oldName 仍在表中。其他迁移似乎有效。
数据库是postgres。我开始查看日志,看看是否能找到任何东西。
有什么方法可以调试sequelize来弄清楚发生了什么吗?有谁知道可能导致此问题的原因吗?
您只是忘记等待重命名查询的结果,只需添加
await
即可:
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.renameColumn(tableName, 'oldName', 'newName');
},
down: async (queryInterface, Sequelize) => {
await queryInterface.renameColumn(tableName, 'newName', 'oldName');
},
};