保持Rails的`schema.rb`在每个git分支中分开?

时间:2014-06-19 18:39:52

标签: ruby-on-rails git rake

使用Rails和Git,如果我在一个分支中运行迁移,则该表现在位于数据库中。现在,如果我签出了一个我不希望迁移的分支,那么该表仍然会被提交到schema.rb,因为它会从数据库中转储出来。

有没有办法阻止架构从数据库中转储?例如,是否可以通过运行迁移而不是通过从DB转储表来生成模式?这对我和我公司的其他人来说真的很烦人。

1 个答案:

答案 0 :(得分:0)

当你切换分支时,要么创建一个全新的数据库并加载一个空的模式,要么将迁移回滚到公共的anscestor,然后在你进入新的分支后再次迁移。

有一些工具和脚本可以帮助解决这个问题,但我还没有亲自使用它们,所以我无法为它们担保。这是我在谷歌搜索后找到的一对夫妇:

模式文件更改只是真正问题的症状:rails正在从数据库的模式动态构建模型的属性。扫描地毯下的schema.rb文件是不够的,因为rails仍然会根据您当前正在使用的分支机构具有错误架构的数据库对您的模型进行假设。