Table of Contents [expand]
Heroku ではさまざまなバージョンの Rails を実行できます。この記事では、Rails バージョンのサポートポリシーについて説明します。
Rails バージョン設定
アプリケーションの Rails バージョンを指定するには、Gemfile
で指定します。
サポートされている Rails バージョン
Cedar アプリでサポートされているバージョン
プラットフォームにデプロイされた Rails の任意のバージョンを使用できます。ただし、ある特定のスタックで使用可能な最も古い Ruby バージョン上で、古いバージョンの Rails が動作するとは限りません。
たとえば、Rails 3.2 が Ruby 2.4.10 以降で実行できない場合、Rails 3.2 アプリケーションを Heroku で実行することはできません。Heroku は、Ruby と Rails 間のバージョン互換性情報を維持管理していません。
Fir アプリでサポートされているバージョン
最小バージョンは Rails 5 以降です。サポートされている Ruby バージョンを使用し、Ruby アプリケーション契約に準拠している場合は、Rails 5 以降のアプリケーションをデプロイできます。推奨される最小の Rails バージョンは 7.1
以降で、2024 年 10 月 1 日に Rails Core でのサポートが終了します。
Rails バージョンサポートポリシー
Heroku での Rails バージョンのサポートには、Rails Core バージョンのサポートが反映されています。
Rails などのライブラリのバージョンが、サポートされている Ruby バージョンで機能しない場合、Rails LTS などのサービスを使用できます。Rails LTS は、古いリリースの維持管理されたバージョンを有料で提供します。Rails LTS プロジェクトは Heroku や Rails Core と提携していません。
Rails Core の正式にサポートされているバージョンや、LTS のサポートされているバージョンを使用していない場合、アプリケーションにはパッチが適用されていないセキュリティ上の脆弱性がある可能性があります。正式にサポートされている Rails バージョンを常に使用することをお勧めします。
Cedar アプリサポートポリシー
Heroku では、古い Rails バージョンの利用を停止していません。
Fir アプリサポートポリシー
Fir の Ruby にはバージョン固有のコードパスを含めることができるため、Rails バージョンをより簡単にデプロイおよび実行できます。
Rails バージョンがサポートされなくなった場合、そのバージョン固有の buildpack コードパスではバグ修正は実行されません。これらのコードパスは引き続きアクセス可能ですが、廃止プロセスに従って将来削除される可能性があります。コード固有のパスはすべて廃止サイクルを経て、そのパスに依存するアプリでは削除前に警告が表示されます。
最新のビルダーが利用できなくなるまで、バージョン固有のコードは削除されません。たとえば、Rails 7.2
のサポートが終了した時点で heroku-24
が最新のビルダーである場合、ビルドパック内の Rails 7.2
固有のコードは heroku-24
が廃止されプラットフォーム上でアクセスできなくなるまで残ります。
さらに、Rails のバージョンは利用できる Ruby のバージョンによって制限されるため、サポートされている Ruby のバージョンを使用する必要があります。