node.js - 使用 migrate:undo 和 Sequelize CLI 时,removeColumn 不会删除带有外键的列
问题描述
我正在为我的数据库使用 sequelize CLI。我需要将具有外键(1:n 关系)的列添加到现有表中,进展顺利,列已成功添加并按预期工作。问题开始了,当我运行从迁移db:migrate:undo
调用函数时。down
我在removeColumn
那里使用,但它不会删除该列,只是继续没有任何错误。
迁移示例:
export default {
up: (queryInterface, Sequelize) => {
queryInterface.addColumn('table', 'someId', {
type: Sequelize.INTEGER,
references: {
model: 'someModel',
key: 'id'
},
onUpdate: 'cascade',
onDelete: 'set null'
})
},
down: (queryInterface, Sequelize) => {
queryInterface.removeColumn('table', 'someId')
}
};
迁移本身工作正常,只是撤消不会删除列或外键,而是继续进行而不会出现任何错误。预期的行为是removeColumn
删除指定的列和相关的外键。
解决方案
推荐阅读
- kdb - 使用 KDB 查询表
- javascript - 使用字符串插值时调用函数
- laravel - laravel 5.7中的自定义密码重置api
- rest - Spring boot JPA - 多个实体的自定义存储库
- elasticsearch - 从搜索查询中删除文档
- scala - SBT - 多个项目依赖于一个父级
- html - 用python填写在线表格(下拉菜单)
- c++ - 创建堆栈 VM 时出现分段错误
- javascript - 更改响应式粘性导航栏中汉堡包图标的颜色
- angular6 - Angular 6 项目中的 ng-pick-datetime 版本 7,尽量不显示时间,只显示日期并在选择日期后关闭