在GIT中处理Rails db/schema.rb文件的正确方法是什么?

在提交给GIT时,我们是否应该包括schema.rb?还是我们应该忽略它?什么是正确的方法

Rails 2的标准schema.rb文件在文件顶部的注释块末尾有以下内容:

强烈建议将此文件签入版本控制系统。

我正在讨论的Rails 3schema.rb也说明了同样的问题。我认为评论说明了一切


更新对评论的回应:
是的,可能会犯错误,并且您可能会得到冲突的更改和错误,破坏您的架构。rb,但这就是为什么您希望它处于修订控制之下,修订控制允许您跟踪所有内容,并在需要时进行备份。在整个源代码树中,只有一个东西指定了数据库模式,那就是schema.rb。您的数据库模式绝对是一个关键工件,任何重要的内容都需要在修订控制中跟踪

任何与schema.rb有关的更新/合并问题都应该通过整理冲突迁移来解决,这样schema.rb将作为解决实际问题的副作用得到修复

是的,schema.rb是一个生成的文件,但它仅在文本编辑器生成pancake.rb模型文件或生成未编辑的脚手架文件时生成

是的,您可以通过构建新数据库,然后运行所有迁移来重建schema.rb文件。但是,您应该时不时地清除旧的迁移,以避免每次rake db:migrate时都必须检查数百个迁移文件,因此“重建并运行所有迁移”通常不是高度活跃项目中的选项

发表评论