寻找应用程序(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 升级到 2.4,然后升级到 2.5 等等,然后回来逐步升级 rails(例如 4.2 => 5.0.x => 5.1.x => ...) ?
什么ruby版本是最新版本可以用来运行 rails 4.2.x ?
任何建议/指导将不胜感激。
第一步是确保您的应用程序有足够的测试,让您在升级应用程序时有信心。
然后您就可以开始真正的升级过程了。有不同的方法可以做到这一点。我通常建议以较小的步骤进行更新,而不是一次性进行大量升级,因为这样可以更容易地解决问题,因为您确切地知道 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 组合兼容的最新版本是一个很好的做法。
如标题所述,我正在寻找应用程序(ruby 2.3.8,rails 4.2.11)到 ruby 最新稳定版本的推荐路径rails,对于非常非常大的代码库来说,这是最安全、最稳定的选择。
例如
是否最好先将 ruby 升级到 2.4,然后升级到 2.5 等等,然后回来逐步升级 rails(例如 4.2 => 5.0.x => 5.1.x => ...) ?
什么ruby版本是最新版本可以用来运行 rails 4.2.x ?
任何建议/指导将不胜感激。
第一步是确保您的应用程序有足够的测试,让您在升级应用程序时有信心。
然后您就可以开始真正的升级过程了。有不同的方法可以做到这一点。我通常建议以较小的步骤进行更新,而不是一次性进行大量升级,因为这样可以更容易地解决问题,因为您确切地知道 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 组合兼容的最新版本是一个很好的做法。