正如标题所述,我正在寻找应用程序(ruby 2.3.8,rails 4.2.11)到最新稳定版本的 ruby 和 Rails 的推荐路径,这是非常非常稳定的选择庞大的代码库。
例如
首先将 ruby 升级到 2.4 ,然后是 2.5 等等,然后再回来小步升级 Rails 是不是更好(例如 4.2 => 5.0.x => 5.1.x => ...)?
可以用来运行rails 4.2.x的最新版本是什么ruby版本?
任何建议/指导将不胜感激。
第一步是确保您的应用程序经过足够的测试,以便您在升级应用程序时充满信心。
然后您可以开始实际的升级过程。有不同的方法可以做到这一点。我通常建议以较小的步骤进行更新,而不是一次性进行大规模升级,因为这样可以更轻松地解决问题,因为您确切地知道 Ruby 或 Ruby on Rails 版本引入了该问题。
此外,每个 Ruby on Rails 版本都有一系列与其兼容的 Ruby 版本,您必须以匹配的组合来更新它们。
有人建议你应该先升级到最低的次要版本和补丁版本,然后再升级到最新的次要版本,例如
5.0.7.2 -> 5.1.0 -> 5.1.7
。但根据我的经验,直接更新到下一个小版本的最新版本就可以了,比如5.0.7.2 -> 5.1.7
。
我建议遵循此表中的 Ruby 和 Ruby on Rails 兼容性。这导致以下升级路径:
ruby 2.3.8 rails 4.2.11 your current versions
|
ruby 2.3.8 rails 4.2.11.3
|
ruby 2.3.8 rails 5.0.7.2
|
ruby 2.4.10 rails 5.0.7.2
|
ruby 2.4.10 rails 5.1.7
|
ruby 2.5.9 rails 5.1.7
|
ruby 2.5.9 rails 5.2.8.1
|
ruby 2.6.10 rails 5.2.8.1
|
ruby 2.6.10 rails 6.0.6.1
|
ruby 2.6.10 rails 6.1.7.10
|
ruby 2.7.8 rails 6.1.7.10
|
ruby 3.0.7 rails 6.1.7.10
|
ruby 3.0.7 rails 7.0.8.8
|
ruby 3.1.6 rails 7.0.8.6
|
ruby 3.2.6 rails 7.0.8.6
|
ruby 3.2.6 rails 7.1.5 minimum combination to still get security fixes
|
ruby 3.3.6 rails 7.1.5
|
ruby 3.3.6 rails 7.2.2 minimum combination to still get bug fixes
|
ruby 3.3.6 rails 8.0.0
请注意,在本答案最后一次更新时(2024 年 11 月),Ruby 3.1 和 Ruby on Rails 7.1.x 仍然获得安全修复。因此,我建议将其作为在生产环境中运行的最低版本组合。错误修复仅适用于 Ruby 3.2 和 Ruby on Rails 7.2.x 及更高版本。
在每个步骤中,请参阅官方 Rails 指南中的升级 Ruby on Rails,了解该特定版本中的更改。每个步骤完成后,请确保修复可能出现的所有弃用警告。
请记住也要检查您的所有其他宝石。我认为在每个步骤之后和进行下一个升级步骤之前将所有 gems 更新到与您当前的 Ruby 和 Ruby on Rails 组合兼容的最新版本是一个很好的做法。