“扁平化”Rails迁移的方法?

时间:2011-06-07 21:05:09

标签: ruby-on-rails migration

我正在努力部署我的第一个Rails应用程序,在此过程中的某个地方,我拙劣地进行了迁移。当我尝试将我的应用程序推送到生产服务器并运行rake db:migrate时,它会因某个错误而失败。

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

据我所知,这很草率,我知道我可能首先打破了迁移链的愚蠢行为。 (我可能直接在某个地方编辑了数据库模式,我现在理解这是一个禁忌。)这是一个非常小的项目,我基本上是唯一的开发人员,所以我很舒服在地毯下扫描这个问题如果可能的话。

有办法吗?

感谢您提供专业知识。

2 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:2)

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

rake db:schema:dump

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