我正在努力部署我的第一个Rails应用程序,在此过程中的某个地方,我拙劣地进行了迁移。当我尝试将我的应用程序推送到生产服务器并运行rake db:migrate
时,它会因某个错误而失败。
现在,我方式懒得单独完成我的迁移工作以找出问题所在,所以我试图避免这样做。鉴于我当前的开发数据库工作正常,有没有办法将当前模式“扁平化”为单一,全面的迁移?
据我所知,这很草率,我知道我可能首先打破了迁移链的愚蠢行为。 (我可能直接在某个地方编辑了数据库模式,我现在理解这是一个禁忌。)这是一个非常小的项目,我基本上是唯一的开发人员,所以我很舒服在地毯下扫描这个问题如果可能的话。
有办法吗?
感谢您提供专业知识。
答案 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文件重新创建它们。