在使用Sequelize CLI的migration:undo时,removeColumn不会删除具有外键的列

时间:2019-04-04 09:04:23

标签: node.js database sequelize.js

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

0 个答案:

没有答案