Sim*_*tti 28 ruby migration activerecord ruby-on-rails
我已经运行了一个大型Rails应用程序超过2年,而且,我的ActiveRecord迁移文件夹日复一日地发展到150多个文件.
存在非常旧的模型,在应用程序中不再可用,仍在迁移中引用.我想删除它们.
你怎么看?您是否经常从代码库中清除旧迁移?
小智 14
一旦我点击主要网站发布,我就会将迁移推广到一个并重新开始.一旦迁移版本数量增加到75左右,我就会觉得很脏.
use*_*234 14
Rails 4 Way第177页:塞巴斯蒂安说......
一个鲜为人知的事实是,您可以删除旧的迁移文件(同时仍保留较新的迁移文件)以使
db/migrate文件夹保持可管理的大小.您可以将较旧的迁移移动到db/archived_migrations文件夹或类似的东西.修改迁移文件夹的大小后,使用该rake db:reset任务(重新)创建数据库db/schema.rb并将种子加载到当前环境中.
就我个人而言,我喜欢让迁移文件保持整洁。我认为一旦您将所有更改推送到产品中,您应该真正考虑归档迁移。我遇到的唯一困难是当 Travis 运行时它会运行 a db:migrate,所以这些是我使用的步骤:
将历史性迁徙从/db/migrate/移至/db/archive/release-x.y/
使用目录中上次运行迁移的版本号手动创建一个新的迁移文件/db/archive/release-x.y,并将描述更改为类似from_previous_version. 使用旧版本号意味着它不会在您的产品计算机上运行并且会出现混乱。
schema.rb从该部分复制内容ActiveRecord::Schema.define(version: 20141010044951) do并粘贴到更改日志change的方法中from_previous_version
检查所有这些,罗伯特应该是你父母的兄弟。
唯一的其他考虑因素是您的迁移是否创建任何数据(我的测试场景包含它们自己的所有数据,所以我没有这个问题)
我偶尔会清除所有已在生产中应用的迁移,我发现至少有两个原因:
它们相对较小,所以我会选择保留它们,只是为了记录。
您应该在不引用模型或应用程序其他部分的情况下编写迁移,因为它们会再次困扰您;)
查看这些指南:
http://guides.rubyonrails.org/migrations.html#using-models-in-your-migrations
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |