NodeJS 在knex.js迁移中删除外键无效

gstyhher  于 2023-03-17  发布在  Node.js
关注(0)|答案(2)|浏览(158)

我正在我的sql上使用knex.js进行迁移。现在有一些错误的外键,我想删除它。我正在使用下面的语法,但它不工作。它没有显示任何错误,但也没有删除外键。

exports.up = function(knex, Promise) {
      knex.schema.table('page_block_data', function(table) {
        table.dropForeign('page_block_data_block_id_foreign');
      });

};

exports.down = () => {};

有人能帮我解决这个问题吗?

aiazj4mn

aiazj4mn1#

您的up方法缺少返回值。这可能会导致数据库连接实际上在查询发送到数据库服务器之前关闭。
还可以自动生成表名前缀和表名后缀部分的外键名。
尝试:

exports.up = function(knex, Promise) {
     return knex.schema.table('page_block_data', function(table) {
        table.dropForeign('block_id');
      });
};
z9gpfhce

z9gpfhce2#

它需要一个只读字符串[]。也许您可以尝试:

table.dropForeign(['page_block_data_block_id_foreign']);

相关问题