我们的网站刚刚进入测试版,现在我们有一大堆生产用户,我们意识到我们在初始架构上犯了一些大错误,觉得我们现在需要修改数据库的结构。
这将导致我们编写一堆不可逆转的迁移。而不是这样做,有人建议我们可以完全删除我们的数据库,销毁我们现有的所有迁移,然后从头开始重写它们,避免我们第一次犯错。
我有几个问题:
1)在现实生活中有没有人真正做到这一点? 2)我们保留数据的选择是什么? IS TAPS还有很长的路吗? 3)或者我们应该编写不可逆转的迁移并忘记删除db? 我想,This question处理这个问题。
答案 0 :(得分:2)
不可逆转的迁移并不可怕。可能存在迁移无法逆转的情况。
我的建议是不要删除数据库,而是用小步骤进行更改。
首先为用户创建并行模型,或使用requires字段更改现有模型。创建一个,至少两个迁移并进行部署,确保您当前的应用程序仍然按预期工作。
然后创建另一批迁移并进行部署。
可能需要5,10或甚至20次迭代才能以您想要的方式更改所有结构,但您不会使用删除数据库的过程,使应用程序脱机并稍后导入整个数据库。 / p>