正在应用 Sequelize 迁移,但数据库没有更改

问题描述 投票:0回答:1

我有一个简单的迁移,可以重命名列。迁移文件如下所示:

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来弄清楚发生了什么吗?有谁知道可能导致此问题的原因吗?

postgresql sequelize.js sequelize-cli
1个回答
0
投票

您只是忘记等待重命名查询的结果,只需添加

await
即可:

module.exports = {
    up: async (queryInterface, Sequelize) => {
        await queryInterface.renameColumn(tableName, 'oldName', 'newName');
    },

    down: async (queryInterface, Sequelize) => {
        await queryInterface.renameColumn(tableName, 'newName', 'oldName');
    },
};
© www.soinside.com 2019 - 2024. All rights reserved.