是否应该从schema.rb单独提交rails迁移?

时间:2011-04-16 12:28:33

标签: ruby-on-rails rails-migrations

生成/编写/运行Rails数据库迁移后,是否应将迁移文件和db/schema.rb分别提交给版本控制?

2 个答案:

答案 0 :(得分:3)

我见过的大多数人都是在一次提交中提交的。

这样对我来说更有意义。它确保在任何修订版上运行rake db:migrate都不会修改db/schema.rb

答案 1 :(得分:3)

如果schema.rb与迁移不同步,某些应该相似的佣金任务可能会有不同的行为,例如:

创建数据库后,如果运行:

rake db:migrate - 它将运行迁移

rake db:schema:load - 它将使用schema.rb

重新设置数据库:

rake db:migrate:reset - 逐个重新创建运行迁移的数据库。

rake db:reset - 使用当前版本的schema.rb

重新创建数据库

在这两种情况下,无论您选择哪个任务,结果都应该相同。通常,首选使用schema.rb,因为它只需一步创建数据库,而不是为每次迁移传递数据,但如果它与迁移的版本不同,则结果会有所不同。