【问题标题】:Irreversible migrations versus brand new migrations?不可逆转的迁移与全新的迁移?
【发布时间】:2014-01-18 19:14:33
【问题描述】:

我们的网站不久前进入了测试阶段,现在我们有一群生产用户,我们意识到我们在初始架构方面犯了一些大错误,并认为我们现在需要修改数据库的结构。

这将导致我们编写一堆不可逆的迁移。建议我们可以完全删除数据库,销毁所有现有迁移,然后从头开始重写它们,以避免我们第一次犯的错误,而不是这样做。

我有几个问题:

1) 真的有人在现实生活中这样做吗? 2)我们保留数据的选择是什么? TAPS 仍然是要走的路吗? 3) 还是我们应该只写不可逆的迁移而忘记删除数据库?

This question 有点处理这个问题,我猜。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    不可逆转的迁移并不可怕。可能存在无法撤消迁移的情况。

    我的建议是不要删除数据库,而是通过小步骤进行更改。

    首先为您的用户创建一个并行模型,或者使用需要的字段更改现有模型。创建一个,至少两个迁移并进行部署,确保您当前的应用程序仍然按预期工作。

    然后创建另一批迁移并部署。

    按照您想要的方式更改所有结构可能需要 5、10 甚至 20 次迭代,但您不会进行删除数据库、使应用程序脱机并稍后导入整个数据库的过程。

    【讨论】:

    • 好的,这是非常有用的建议。我要那样做。并且将来从 schema.rb 构建数据库。很高兴知道这些东西。
    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多