在这个问题中,我特别关注以下情况:
- 将功能分支合并到 master
- 功能分支有一个新的迁移,例如:
123_add_foo.rb
- Master 分支有新的迁移,这些迁移不在功能分支中,例如:
456_add_bar.rb
选项1
合并schema.rb
文件时,结果将是形式
create_table "something", :force => true do |t|
...
t.string "foo" # foo was added to schema.rb earlier, so appears first
t.string "bar"
end
选项 2
但是,运行rake db:migrate
会导致它重新排序,看起来像
create_table "something", :force => true do |t|
...
t.string "bar" # bar was added to the master branch first
t.string "foo" # so this appears before foo here
end
问题
哪些schema.rb
应该存储在版本控制中?
选项 2 匹配迁移服务器时会发生的情况 - 这是否不再匹配从头开始运行迁移时会发生的情况?