我一直在想如何在迁移文件中编写down
函数。理想情况下,它应该与我们在up
方法中所做的完全相反。现在假设我写了up
函数来删除列上的unique
约束,将一些新行(具有重复数据)添加到表中,现在我想回滚迁移。理想情况下,我会编写down
方法再次在列上添加唯一约束,但迁移不会回滚,因为表现在包含重复数据。
所以我的问题是 -
down
函数? down
功能留空吗?感谢。
答案 0 :(得分:1)
我通常根本不写下函数,只是把它们留空。
我从不回滚迁移,如果我想要达到早期数据库状态,我只需从备份中恢复整个数据库。
如果我只想将唯一约束放回去,我将编写另一个向上迁移,修复重复行,然后再添加唯一约束。
我知道许多人在测试之间使用回滚来重置数据库,但这种做法确实很慢。