【问题标题】:Way to "flatten" Rails migrations?“扁平化” Rails 迁移的方法?
【发布时间】:2011-06-07 21:05:08
【问题描述】:

我现在正在部署我的第一个 Rails 应用程序,在此过程中,我搞砸了一次迁移。当我尝试将我的应用程序推送到生产服务器并运行 rake db:migrate 时,它在某处失败并出现错误。

现在,我方式懒得单独完成我的迁移以找出问题所在,所以我试图避免这样做。鉴于我当前的开发数据库运行良好,有没有办法将当前架构“扁平化”为单一、全面的迁移?

我知道这很草率,而且我知道我一开始可能做了一件愚蠢的事情来破坏迁移链。 (我可能直接在某处编辑了数据库模式,我现在明白这是一个禁忌。)虽然这是一个非常小的项目,但我基本上是唯一参与的开发人员,所以我很乐意在地毯下扫除这个问题如果可能的话。

有没有办法做到这一点?

感谢您提供专业知识。

【问题讨论】:

    标签: ruby-on-rails migration


    【解决方案1】:

    这就是 db/schema.rb 文件的用途。如果您仅在迁移中进行了结构更改,您将能够运行 rake db:schema:load 而不是运行 rake db:migrate 来获取表的绝对结构。

    【讨论】:

    • 如果他同时更改了数据库,他可能需要在此之前执行 rake db:schema:dump。
    • 像冠军一样工作。谢谢!
    【解决方案2】:

    如果您直接编辑了架构,则需要运行:

    rake db:schema:dump
    

    这将获取数据库中的任何内容并创建一个 schema.rb 文件。然后,您可以随时运行 rake db:schema:load。但是,这意味着您的迁移仍然很糟糕。您可以删除所有这些并从 schema.rb 文件重新创建它们。

    【讨论】:

    • 谢谢凯尔!是的,我刚刚删除了旧的迁移,现在我开始营业了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2019-10-15
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多