有关迁移文件的最佳实践
Best practices concerning migration files
我现在正在考虑将 db/migrate
文件夹添加到 .gitignore
文件中。
由于迁移可能会以某种方式 mixed/messed 进行,因此通常建议在开始处理正在进行的项目时依靠 schema.rb
而不是 运行 一个接一个地迁移。
从 repo 中排除迁移文件并依赖 rake db:setup
是个好主意吗?
如果您是单身开发者,或者您的团队所有成员都依赖 db:setup
和 db: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?
我现在正在考虑将 db/migrate
文件夹添加到 .gitignore
文件中。
由于迁移可能会以某种方式 mixed/messed 进行,因此通常建议在开始处理正在进行的项目时依靠 schema.rb
而不是 运行 一个接一个地迁移。
从 repo 中排除迁移文件并依赖 rake db:setup
是个好主意吗?
如果您是单身开发者,或者您的团队所有成员都依赖 db:setup
和 db: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?