在GIT中处理Rails db / schema.rb文件的正确方法是什么?
我们是否应该在包含schema.rb
同时向GIT提交? 或者我们应该忽略它? 什么是正确的方法?
那么Rails 2的标准schema.rb
文件就在这个文件顶部的注释块的末尾:
# It's strongly recommended to check this file into your version control system.
Rails 3 schema.rb
,我踢着说同样的事情。 我觉得这个评论是这么说的。
更新回应评论:是的,可以犯的错误,你可以得到冲突的变化和错误mango你的schema.rb
但这就是为什么你想要在版本控制,版本控制允许你跟踪一切,并在需要时进行备份。 整个源代码树中只有一个用于指定数据库架构的东西,即schema.rb
。 您的数据库模式绝对是一个重要的工件,任何重要的东西都需要在版本控制中进行跟踪。
任何有关schema.rb
更新/合并问题都应该通过整理出冲突的迁移来解决,所以schema.rb
将会被固定为解决实际问题的副作用。
是的, schema.rb
是一个生成的文件,但它只是在您的文本编辑器生成您的pancakes.rb
模型文件或未编辑的scaffold文件生成的意义上生成的。
是的,你可以通过构build一个新的数据库然后运行所有的迁移来重buildschema.rb
文件。 但是,您应该立即清理旧的迁移,以避免每次rake db:migrate
时检查数以百计的迁移文件rake db:migrate
所以“重build并运行所有迁移”通常不是高活跃项目中的一个选项。
是。 在使用rake db:reset和其他命令时,模式文件用于configuration数据库。 迁移只能在更改数据库模式时使用,并且总是会生成新的模式文件。
那么,默认情况下它不包含在.gitignore中。 所以,我认为你不会有问题,包括它(我在我的项目中,没有任何问题)。
我不把这个文件提交给Git,因为当我启动rake db:migrate
时候创build这个文件。
如果我将这个文件提交给Git,那么在每个db:migrate
之后,我都无法从服务器获取新的更改。