如何从Ruby on Rails 2.3.18更新到4.2.4(最新版本)?

时间:2015-09-14 12:33:57

标签: updates ruby-on-rails-2 ruby-on-rails-4.2

我想将一个巨大的Ruby on Rails v2.3.18 应用程序更新为Rails v4.2.4 (最新)。

完成some research之后,我想出了:

  • 在Rails 2.3.18(2013年3月18日)之后,共有 195 版本发布,直到Rails 4.2.4(2015年8月24日)
    • 其中 92 是稳定版本
    • 2 主要版本
    • 775 文件已更改
    • 909 提交

我们的应用程序在Ruby 2.1.5上运行Ruby on Rails 2.3.18。

  • Ruby也应该从这个版本更新到2.2.x?
  • 是否有任何人实现或尝试过这种信仰和信仰的飞跃"并成功了吗?
  • 我应该从哪里开始才能实现目标?
  • 更新任何Ruby on Rails应用程序的基本流程是什么?

1 个答案:

答案 0 :(得分:2)

我也一直在考虑这个问题与一些5岁的项目 - 我是否继续使用rails 2.3.18 LTS https://railslts.com/,或者迁移到rails 4.2,因为我知道我需要每年/每半年查看一次更新rails版本。我怀疑随着新功能的开发,我将在选择性替换方面取得更大的成功。

无论如何,我发现的信息似乎表明这是一个漫长的过程:

这篇文章可能有所帮助 - https://groups.google.com/d/msg/rubyonrails-talk/y0q1fc8N_GU/H2xOsy2mYpwJ

其中Rob Biedenharn建议

•更新到rails-2.3.18     真的没有理由没有充分的理由你应该已经这样做了。     2.3.9(2010-09-04)是首次为升级到rails-3.0提供弃用警告的版本     2.3.18(2013-03-18)是2.3行中的最后一个版本,包含至少10个漏洞的修复程序(其中一些非常严重!)

•让所有测试通过(如果你没有进行测试,你最好有信心) •解决所有弃用警告

•不要升级ruby     https://developer.uservoice.com/blog/2012/03/04/how-to-upgrade-a-rails-2-3-app-to-ruby-1-9-3/     但是你可能不得不升级到ruby-1.8.7,因为rails-3.0没有正式支持1.8.6)

哦,我按照Jason Fleetwood-Boldt的建议看了一下http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html,虽然升级过程从3.0升到4.1,但还有更详细的步骤。但是如果你没有时间自己去看看,那么也许我已经给你足够的权衡了升级和重写路径。

•升级到rails-3.0.0(甚至可能直接升级到rails-3.0.20) •让所有测试通过

•升级到ruby-1.9.2(或者甚至是ruby-1.9.3) •让所有测试通过

•升级到rails-3.1.12(rails-3.1行的最后一个)     这可能不是严格要求的,但3.1引入了Asset Pipeline,并使jQuery成为默认的JavaScript框架。     如果您在应用程序中使用了Prototype或Scriptaculous,那么将它转换为jQuery可能是一个好主意(并获得https://github.com/rails/jquery-ujs) •让所有测试通过

•升级到rails-3.2.19 •让所有测试通过

•升级到ruby-2.1.2(此时可能没有理由只使用2.0) •让所有测试通过

•升级到rails-4.0.8 •让所有测试通过

•升级到rails-4.1.4 •处理新的secrets.yml文件 •让所有测试通过

•度假

说真的,如果你真的想要升级路线,还有很多工作要做。我甚至没有提到任何你几乎肯定会遇到的问题,这些问题不再适用于较新版本的Rails或更新的Rubies。我建议您非常认真地考虑将应用程序“刷新”为将应用程序置于当前受支持的RoR堆栈的更简单方法。