Ruby on rails 不可逆转的迁移与全新的迁移?
我们的网站不久前进入了beta测试阶段,现在我们有了大量的生产用户,我们意识到我们在初始模式方面犯了一些大错误,并且觉得我们现在需要修改数据库的结构 这将导致我们编写一系列不可逆转的迁移。与此相反,有人建议我们可以完全删除数据库,销毁所有现有的迁移,然后从头重写它们,避免我们第一次犯的错误 我有几个问题: 1) 在现实生活中真的有人这样做吗? 2) 我们保留数据的选项是什么?水龙头仍然是一条路要走吗? 3) 或者我们应该只写不可逆转的迁移,而忘记删除数据库吗Ruby on rails 不可逆转的迁移与全新的迁移?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我们的网站不久前进入了beta测试阶段,现在我们有了大量的生产用户,我们意识到我们在初始模式方面犯了一些大错误,并且觉得我们现在需要修改数据库的结构 这将导致我们编写一系列不可逆转的迁移。与此相反,有人建议我们可以完全删除数据库,销毁所有现有的迁移,然后从头重写它们,避免我们第一次犯的错误 我有几个问题: 1) 在现实生活中真的有人这样做吗? 2) 我们保留数据的选项是什么?水龙头仍然是一条路要走吗? 3) 或者我们应该只写不可逆转的迁移,而忘记删除数据库吗 我想这在某种程度上是可以解决的。不可
我想这在某种程度上是可以解决的。不可逆转的迁移并不可怕。在某些情况下,迁移可能无法逆转 我的建议是不要删除数据库,而是通过小步骤进行更改 首先为您的用户创建一个并行模型,或者使用requires字段更改现有模型。创建一个(至少两个)迁移并部署,确保当前应用程序仍按预期工作 然后创建另一批迁移并部署
以您想要的方式更改所有结构可能需要5次、10次甚至20次迭代,但您不会执行删除数据库、使应用程序脱机以及稍后导入整个数据库的过程。好的,这是非常有用的建议。我要这么做。并且在将来从schema.rb构建数据库。很高兴知道这件事。