繁体   English   中英

是否在每个git分支中分开Rails的`schema.rb`?

[英]Keep Rails' `schema.rb` separated in each git branch?

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

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

切换分支时,要么创建一个全新的DB并加载一个空模式,要么将迁移回滚到公共祖先,然后在进入新分支后再次向上迁移。

有一些工具和脚本可以帮助解决这个问题,但是我个人没有使用过它们,因此我不能为其提供担保。 这是我在谷歌搜索后发现的一对:

更改模式文件只是真正问题的征兆:Rails正在根据数据库的模式动态构建模型的属性。 完全扫除一下schema.rb文件将是不够的,因为Rails仍将基于一个数据库,该数据库基于您当前正在使用的分支的模式不正确的数据库,对您的模型进行假设。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM