我正在为数据库使用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
删除指定的列和相关的外键。