Heroku - 16からHeroku - 18スタックへのRailsアプリのアップグレード
私はクライアントにHeroku - 16からHerook - 18スタックへのRailsアプリを緊急にアップグレードするように取り組んでいます.Herokuはすでに今月末にHeroku - 16スタックの最後の生命を持っている.そして数日後、彼らは完全にサポートパッチとHeroku - 16アプリの新しいビルドをオフにします.
Heroku - 18スタックは2023年4月までサポートされています.
Heroku - 18がサポートする最小のRubyバージョンはRuby 2.4.10 ( source ).
source
ローカルでRubyのアップグレードをテストする
ターゲットRubyバージョンをインストールします
プレビューアプリケーションの配備
プレビューアプリケーションは、このアプリを取得し、生産環境のように実行する素晴らしい方法です.これは、さらにアプリのタイヤをキックする機会です.は、生産環境や設定の詳細やHerokuのは、このアプリは動作しないですか?もしそうならば、生産ではなくここで見つけることは最高です.
これにより、新しいHerokuスタックのプレビューアプリケーションに新しいRubyバージョンのブランチを配置することができます.
こちらはHerokuガイド です.
upgrading the stack of an appこれを行うには、アプリの分岐を作成するには、
生産への変更の展開
私は最初にRubyのアップグレードの変更をプッシュしようとし、
幸いにも、Rubyのアップグレードの変更は、既存のスタックに対してうまく展開されます.そして、我々は完全な非難からまだ2日間であるため、アプリケーションは、既存のスタックを構築し、展開することができた.
私が最初にそれをしなければならなかった方法は、Heroku Cliを使用しているアプリケーションのためにスタックをセットすることでした.
私が注文したので、私は空のコミットを押し上げることによってもう一つの生産展開を誘発しなければなりませんでした.
あなたが私の文書を楽しむならば、 または私について考えてください.
joining my newsletterのCharlota Blunarovaによる掩護写真
Heroku - 18スタックは2023年4月までサポートされています.
Heroku - 18がサポートする最小のRubyバージョンはRuby 2.4.10 ( source ).
source
ローカルでRubyのアップグレードをテストする
ターゲットRubyバージョンをインストールします
$ asdf install ruby 2.4.10
そのRubyバージョンに切り替えます.$ asdf local ruby 2.4.10
$ ruby --version
ruby 2.4.10p364 (2020-03-31 revision 67879) [x86_64-darwin19]
古いバージョンのバンドル( pre 2 . x )をインストールします.$ gem install bundler:1.17.3
Bandlerの特定のバージョンを使用して、新しいRubyバージョンのすべてのアプリケーションのGemをインストールします.$ bundle _1.17.3_ install
ローカルでサーバを起動します( DBがどんな意味になっても接続してください)$ bundle exec rails s
プレビューアプリケーションの配備
プレビューアプリケーションは、このアプリを取得し、生産環境のように実行する素晴らしい方法です.これは、さらにアプリのタイヤをキックする機会です.は、生産環境や設定の詳細やHerokuのは、このアプリは動作しないですか?もしそうならば、生産ではなくここで見つけることは最高です.
これにより、新しいHerokuスタックのプレビューアプリケーションに新しいRubyバージョンのブランチを配置することができます.
こちらはHerokuガイド です.
upgrading the stack of an appこれを行うには、アプリの分岐を作成するには、
app.json
でスタックを変更し、Herokuにプレビューアプリ(実際にレビューアプリと呼ばれる)を展開することです.このJSONファイルで指定されたスタックバージョンを使用します.{
"stack": "heroku-18"
}
recommended way生産への変更の展開
私は最初にRubyのアップグレードの変更をプッシュしようとし、
app.json
スタックを直接生産に変更します.これは、古いスタックで展開されているRubyのアップグレード変更につながりました.app.json
になされた変更にもかかわらず、Herokuはそのように既存のアプリケーションのスタックをアップグレードしません.An existing app’s stack cannot be changed using app.json. The stack specified is only applied to newly created apps that are a Review App, a Heroku CI test run app, or an app created using a Heroku Buttons. source
幸いにも、Rubyのアップグレードの変更は、既存のスタックに対してうまく展開されます.そして、我々は完全な非難からまだ2日間であるため、アプリケーションは、既存のスタックを構築し、展開することができた.
私が最初にそれをしなければならなかった方法は、Heroku Cliを使用しているアプリケーションのためにスタックをセットすることでした.
$ heroku stack:set heroku-18 -a <app name>
Herokuは次のビルドでスタックアップグレードを適用します.それで、一旦設定されるならば、私はそれからRubyアップグレード変化を押し上げなければなりませんでした.私が注文したので、私は空のコミットを押し上げることによってもう一つの生産展開を誘発しなければなりませんでした.
$ git commit --allow-empty -m "Upgrading to heroku-18"
空のコミットがメインブランチにあると、リモートのメインブランチに直接プッシュされます(git push origin main
).これはHiokuと統合されたGithubを持っているので、main
ブランチにプッシュされた変更が展開を引き起こすことになります.もしそうでなければ、HerokuのリモートへのプッシュによってHerokuウェイを展開するきっかけとなります.あなたが私の文書を楽しむならば、 または私について考えてください.
joining my newsletterのCharlota Blunarovaによる掩護写真
Reference
この問題について(Heroku - 16からHeroku - 18スタックへのRailsアプリのアップグレード), 我々は、より多くの情報をここで見つけました https://dev.to/jbranchaud/upgrade-a-rails-app-from-the-heroku-16-to-the-heroku-18-stack-5kpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol