如何从 Rails 上的 Ruby 2.3.18 更新到 4.2.4(最新)?

How to update from Ruby on Rails 2.3.18 to 4.2.4 (latest)?

我想将 Rails v2.3.18 上的一个巨大的 Ruby 应用更新到 Rails v4.2.4 (最新)。

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

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

我也一直在思考一些 5 年前的项目的这个问题 - 我是继续使用 rails 2.3.18 LTS https://railslts.com/ 还是迁移到 rails 4.2,我知道然后我需要查看 annually/biannually 更新 rails 版本。我怀疑随着新功能的开发,我在选择性替换方面会更成功。

无论如何,我找到的信息似乎表明这是一个漫长的逐步过程:

这个post可能会有帮助-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 中停止运行。我建议您非常认真地考虑 "refreshing" 将应用程序作为将应用程序引入当前受支持的 RoR 堆栈的更简单方法。