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

rub*_*nce 39 git ruby-on-rails

我们应该schema.rb在提交给GIT的时候加入吗?还是应该忽略它?什么是正确的方法?

mu *_*ort 62

那么schema.rbRails 2 的标准文件在文件顶部的注释块的末尾有这个:

# It's strongly recommended to check this file into your version control system.
Run Code Online (Sandbox Code Playgroud)

schema.rb我踢的Rails 3 也说了同样的话.我认为评论说明了一切.


更新以回应评论: 是的,可以犯错误,您可以获得相互冲突的更改和错误,schema.rb但这就是您希望它在版本控制下的原因,修订控制允许您跟踪所有内容并在需要时进行备份.整个源代码树中只有一件事指定了您的数据库架构schema.rb.您的数据库模式绝对是一个关键工件,需要在修订控制中跟踪任何重要的工件.

任何更新/合并问题schema.rb都应该通过整理您的冲突迁移进行整理,因此schema.rb将修复为修复真实问题的副作用.

是的,schema.rb是生成的文件,但它只是在文本编辑器生成pancakes.rb模型文件或生成未编辑的脚手架文件的意义上生成的.

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

  • 好了,从项目开始就开始向多个项目提交架构文件到GIT之后,我会说我们只有很小的小冲突,通常在最后一个迁移号附近,可以很容易地解决。因此,总体而言这是一个平稳的过程。 (2认同)