Rails 迁移文件是否应该与 schema.rb 分开提交?

3
在生成/编写/运行Rails数据库迁移后,应该将迁移文件和db/schema.rb分别提交到版本控制中吗?
2个回答

3

我见过的大多数人都是在一个提交中完成这些操作。

我认为这样做更有意义。这样可以确保在任何修订版本上运行 rake db:migrate 不会修改 db/schema.rb


这在合并冲突方面是否有任何影响? - zacharydanger

3

如果schema.rb与迁移文件不同步,那么一些类似的rake任务可能会表现得不同,例如:

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

rake db:migrate - 它将运行迁移文件

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

重置数据库:

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

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

在任何情况下,无论选择哪个任务,结果都应该是相同的。通常,使用 schema.rb 更好,因为它可以一步创建数据库,而不是遍历每个单独的迁移文件,但如果它与迁移文件的版本不同,则结果将不同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接