如何在迁移文件中记下函数(knex.js)

时间:2017-05-18 23:14:36

标签: javascript node.js database-migration knex.js bookshelf.js

我一直在想如何在迁移文件中编写down函数。理想情况下,它应该与我们在up方法中所做的完全相反。现在假设我写了up函数来删除列上的unique约束,将一些新行(具有重复数据)添加到表中,现在我想回滚迁移。理想情况下,我会编写down方法再次在列上添加唯一约束,但迁移不会回滚,因为表现在包含重复数据。 所以我的问题是 -

  • 在这种情况下该怎么办?
  • 如何在迁移中编写down函数?
  • 在这种情况下,我可以将down功能留空吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我通常根本不写下函数,只是把它们留空。

我从不回滚迁移,如果我想要达到早期数据库状态,我只需从备份中恢复整个数据库。

如果我只想将唯一约束放回去,我将编写另一个向上迁移,修复重复行,然后再添加唯一约束。

我知道许多人在测试之间使用回滚来重置数据库,但这种做法确实很慢。