Использование последней версии Knex.js с помощью Postgresql DB.Переход миграции KnexForeign не работает?
У меня есть более ранняя миграция, которая переименовывает некоторые таблицы. В принципе, все таблицы были множественными (так что устройства вместо устройства), и теперь они единственные. Теперь мы решили отказаться от одной из тех переименованных таблиц. Он имеет внешний ключ к другой таблице. Поэтому я подумал, что должен просто удалить внешний ключ из одной таблицы (device_group, используемой для групп devices_groups), а затем удалить нужную таблицу (устройство, используемое для устройств). Так что я создал ниже миграции:
exports.up = function(knex, Promise) {
return knex.table('device_group', function (table) {
table.dropForeign('device_id', 'devices_groups_device_id_foreign');
table.dropColumn('device_id');
})
.then(() => {
return knex.schema.dropTable('device');
})
.then(() => {
return knex.table('device_group', function (table) {
table.string('device_id');
});
});
};
Теперь всякий раз, когда я запускаю это, я не вижу ничего в отладке о попытке отбросить внешний ключ. Вместо этого я просто получаю следующее сообщение.
Knex:warning - migrations failed with error: drop table "device" - cannot drop table device because other objects depend on it
Я пропустил что-то очевидное здесь? Кажется, он пытается сбросить таблицу перед тем, как сбросить внешний ключ.