寻找应用程序(ruby 2.3.8,rails 4.2.11)到最新稳定版本 ruby 和 rails 的推荐升级路径

looking for recommended upgrade path for app (ruby 2.3.8 , rails 4.2.11) to the latest stable versions of ruby and rails

如标题所述,我正在寻找应用程序(ruby 2.3.8,rails 4.2.11)到 ruby 最新稳定版本的推荐路径rails,对于非常非常大的代码库来说,这是最安全、最稳定的选择。

例如

任何建议/指导将不胜感激。

第一步是确保您的应用程序有足够的测试,让您在升级应用程序时有信心。

然后您就可以开始真正的升级过程了。有不同的方法可以做到这一点。我通常建议以较小的步骤进行更新,而不是一次性进行大量升级,因为这样可以更容易地解决问题,因为您确切地知道 Ruby 或 Ruby 上的 Rails版本介绍了这个问题。

此外,Rails 版本上的每个 Ruby 都有一系列 Ruby 兼容的版本,您必须在匹配组合中更新它们。

有人建议先升级到最低的次要版本和补丁版本,然后再升级到最新的次要版本,例如5.0.7.2 -> 5.1.0 -> 5.1.7。但是以我的经验,直接更新到下一个小版本的最新版本就好了,比如5.0.7.2 -> 5.1.7.

我建议在 table 之后加上 Ruby and Ruby on Rails compabilities。这导致以下升级路径:

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
     |
ruby 2.6.10  rails 5.2.8
                   |
ruby 2.6.10  rails 6.0.4.8
                   |
ruby 2.6.10  rails 6.1.6
     |
ruby 2.7.6   rails 6.1.6    minimum combination to still get security fixes
     |
ruby 3.0.4   rails 6.1.6
                   |
ruby 3.0.4   rails 7.0.3    minimum combination to still get bug fixes
     |
ruby 3.1.2   rails 7.0.3    latest (summer 2022)

请注意,在撰写此答案时(2022 年夏季)Ruby 2.7 and Ruby on Rails 6.1.x 仍会获得安全修复。因此,我建议将其作为生产中 运行 的最低版本组合。错误修复仅适用于 Ruby 3.0 和 Ruby Rails 7.0.x 及更高版本。

在每个步骤中,请咨询 Upgrading Ruby on Rails in the official Rails Guides 了解该特定版本中发生的变化。在每个步骤之后,确保修复所有可能出现的弃用警告。

请记住也要检查所有其他宝石。我认为在每个步骤之后和进行下一个升级步骤之前,将所有 gem 更新为与您当前的 Ruby 和 Ruby on Rails 组合兼容的最新版本是一个很好的做法。