#mysql #node.js #knex.js
#mysql #node.js #knex.js
Вопрос:
Я использую миграцию, используя knex.js на моем sql . теперь есть какой-то неправильный внешний ключ, и я хочу его удалить. Для этого я использую приведенный ниже синтаксис, но он не работает. Он не показывает никаких ошибок, но и не удаляет внешний ключ.
exports.up = function(knex, Promise) {
knex.schema.table('page_block_data', function(table) {
table.dropForeign('page_block_data_block_id_foreign');
});
};
exports.down = () => {};
Кто-нибудь может мне помочь в этой проблеме ..?
Ответ №1:
Вам не хватает возврата из вашего метода 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 () => {};
Ответ №2:
попробуйте:
exports.up = function(knex, Promise) {
return knex.schema.table('page_block_data', function(table) {
table.dropForeign('block_id');
});
};
Ответ №3:
Для этого нужна строка только для чтения []. Может быть, вы можете попробовать:
table.dropForeign(['page_block_data_block_id_foreign']);
Комментарии:
1. попробуйте
table.dropForeign([], "page_block_data_block_id_foreign");