有关迁移文件的最佳实践

Best practices concerning migration files

我现在正在考虑将 db/migrate 文件夹添加到 .gitignore 文件中。

由于迁移可能会以某种方式 mixed/messed 进行,因此通常建议在开始处理正在进行的项目时依靠 schema.rb 而不是 运行 一个接一个地迁移。

从 repo 中排除迁移文件并依赖 rake db:setup 是个好主意吗?

如果您是单身开发者,或者您的团队所有成员都依赖 db:setupdb:seed,那么您可以。

但是,如果您打算将应用程序部署到生产服务器上,您真的不应该这样做,因为此处的迁移是根据目标计算机的实际架构版本相应地更新架构。有了它们,只应用权限更改。没有它们,仅依赖 schema.rb 将强制完全重置数据库,清空它。这不是我们在生产服务器上最想要的。

此外,迁移是编码时数据库状态的有用参考,它们有助于以比 schema.rb 更易读的方式快速找到每个模型的字段列表。

如果您从未将您的应用程序部署到生产服务器,并且您是单身开发者(或者如果其他开发者同意),您可以通过将所有更改 (add_field ...) 集成到原始create_table迁移

我强烈建议您提交所有迁移文件,来自 db/migrate 以及您的 schema.rb

这个答案会有帮助:What is the right approach to deal with Rails db/schema.rb file in GIT?

连同:http://ryanbigg.com/2010/12/commit-it-or-else/