在knex.js迁移中删除外键不起作用

时间:2019-04-08 17:21:45

标签: mysql node.js knex.js

我在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 = () => {};

有人可以帮我解决这个问题吗?。

2 个答案:

答案 0 :(得分:0)

您缺少up方法的回报。可能导致数据库连接实际上在查询发送到数据库服务器之前已关闭。

尝试:

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

};

exports.down = async () => {};

答案 1 :(得分:0)

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

table.dropForeign(['page_block_data_block_id_foreign']);