3

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

4

2 回答 2

3

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

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

于 2011-04-16T12:35:01.573 回答
3

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

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

rake db:migrate- 它将运行迁移

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

重置数据库:

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

rake db:reset- 使用当前版本重新创建数据库schema.rb

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

于 2011-04-17T23:09:49.053 回答