Techioz Blog

アプリ (ruby 2.3.8、rails 4.2.11) の最新の安定バージョンの Ruby と Rails への推奨アップグレード パスを探しています

概要

タイトルにあるように、アプリ (ruby 2.3.8、rails 4.2.11) から Ruby と Rails の最新の安定バージョンへの推奨パスを探しています。これは、非常に大規模なアプリケーションにとって最も安全で安定したオプションです。コードベース。

例えば

ご提案やご指導をいただければ幸いです。

解決策

最初のステップは、アプリケーションのアップグレード中に自信を与えるのに十分なテストがアプリケーションにあることを確認することです。

その後、実際のアップグレード プロセスを開始できます。これにはさまざまな方法があります。私は通常、一度に大規模なアップグレードを行うのではなく、より小さなステップで更新することをお勧めします。そうすることで、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.7
     |
ruby 2.7.8   rails 6.1.7.7    
     |
ruby 3.0.6   rails 6.1.7.7  minimum combination to still get security fixes
                   |
ruby 3.0.6   rails 7.0.8.1    
     |
ruby 3.1.4   rails 7.0.8.1  
     |
ruby 3.2.3   rails 7.0.8.1
                   |
ruby 3.2.3   rails 7.1.3.2  minimum combination to still get bug fixes
     |
ruby 3.3.0   rails 7.1.3.2    

この回答の最終更新時点 (2023 年春) では、Ruby 3.0 と Ruby on Rails 6.1.x にはまだセキュリティ修正が適用されていることに注意してください。したがって、これを実稼働環境で実行する最も低いバージョンの組み合わせにすることをお勧めします。バグ修正は Ruby 3.2 および Ruby on Rails 7.1.x 以降でのみ利用可能です。

各ステップで、その特定のバージョンでの変更点については、公式 Rails ガイドの「Ruby on Rails のアップグレード」を参照してください。各手順の後で、発生する可能性のある非推奨の警告をすべて修正してください。

他の宝石もすべてレビューすることを忘れないでください。各ステップの後、次のアップグレードステップを実行する前に、すべての gem を現在の Ruby と Ruby on Rails の組み合わせと互換性のある最新バージョンに更新することをお勧めします。