未处理的拒绝SequelizeDatabaseError:关系“ bar”的列“ foo_bar”已存在

时间:2019-05-05 19:53:23

标签: javascript node.js postgresql express sequelize.js

我编写了一个迁移,以向表foo_bar中添加新列bar。当合并我的分支机构时,我发现一位同事写的迁移与我相同。我们决定不再使用我的,而是使用它们。

现在,当我运行测试时,出现此错误:

  

未处理的拒绝SequelizeDatabaseError:关系“ bar”的列“ foo_bar”已存在

我似乎无法超越,也无法在线找到任何有关如何消除这种废话的内容。

我做了什么

  • 删除了我的迁移

我尝试过的事情

  • 删除我的数据库并创建一个新数据库
  • 删除node_modules

对我来说唯一可行的方法是注释掉所有我们都重叠的列的所有addColumn调用。我没有办法继续容忍这一点!

是否可以通过某种方式清除以前在计算机上运行过的迁移缓存?

1 个答案:

答案 0 :(得分:0)

事实证明,您可以通过使用db:migrate:undo:all命令撤消所有迁移来恢复到初始状态。您还可以通过在--to选项中传递其名称来还原为特定的迁移。

npx sequelize db:migrate:undo:all http://docs.sequelizejs.com/manual/migrations.html

问题解决了!