リリース
最終更新日 2022年10月26日(水)
Table of Contents
コードをデプロイしたり、設定変数を変更したり、アプリのアドオンリソースを変更したりするたびに、Heroku によって新しいリリースが作成され、アプリが再起動します。アプリのリリース履歴を表示したり、デプロイまたは設定変更が失敗した場合に一時的に以前のリリースにロールバックしたりできます。
リリースの作成
アプリの最初のリリースは v1
という名前で、それ以降のリリースのたびに数字が大きくなります。
この例では、コードのデプロイによりリリース v10
が作成されます。
$ git push heroku master
...
-----> Compressing... done, 8.3MB
-----> Launching... done, v10
http://severe-mountain-793.herokuapp.com deployed to Heroku
すでに述べたように、アプリの環境設定またはアドオンリソースを変更するたびに、リリースも作成されます。
リリース履歴の一覧表示
アプリのリリース履歴を表示するには、heroku releases
コマンドを使用します。
$ heroku releases
Rel Change By When
---- ---------------------- ---------- ----------
v52 Config add AWS_S3_KEY jim@example.com 5 minutes ago
v51 Deploy de63889 stephan@example.com 7 minutes ago
v50 Deploy 7c35f77 stephan@example.com 3 hours ago
v49 Rollback to v46 joe@example.com 2010-09-12 15:32:17 -0700
Change
列の値は、各リリースの理由を示します。デプロイの場合、この値にはデプロイされた Git コミットのハッシュが含まれます。リリースでの変更を Git リポジトリ内の変更と関連付けるには、このハッシュを使用します。次に例を示します。
$ git log -n 1 de63889
commit de63889c20a96347679af2c5160c390727fa6749
Author: <stephan@example.com>
Date: Thu Jul 11 17:16:20 2013 +0200
Fixed listing CSS and localization of description.
heroku releases:info
コマンドを使用してリリースの詳細情報を取得できます。
$ heroku releases:info v24
=== Release v24
Change: Deploy 575bfa8
By: jim@example.com
When: 6 hours ago
Addons: deployhooks:email, releases:advanced
Config: MY_CONFIG_VAR => 42
RACK_ENV => production
ロールバック
本番環境にデプロイしたコードにバグがあり、ロールバックする必要がある場合、可能であれば常に、git revert
を使用して該当するコードの変更をローカルで元に戻して、再デプロイするだけにしてください。
設定が正しくないため、または Heroku プラットフォームに固有のその他の問題のためにリリースをロールバックする必要がある場合は、heroku rollback
コマンドを使用できます。次のコマンドは、アプリを以前のリリースにロールバックします。
$ heroku rollback v40
Rolled back to v40
リリース番号を指定しない場合、アプリは 1 つ前のリリースにロールバックされます。
heroku rollback
コマンドは新しいリリースを作成します。このリリースは、ロールバック先のリリースのコンパイル済み slug と環境設定 (アドオン関連の環境設定を含む) をコピーします。
以下の状態はどれも、heroku rollback
コマンドによってロールバックされません。
- アドオンのプロビジョニング (プロビジョニングされたアドオンはプロビジョニングされたままであり、プロビジョニング解除されたアドオンはプロビジョニング解除されたまま)
- アドオン関連の環境設定はすべてロールバックされることに注意してください。プロビジョニングされたままのアドオンの動作に支障をきたさないよう、アドオン関連の環境設定の値を慎重に調整してください。
- アプリの Git リポジトリ (Heroku によってホストされるもの)
- アドオンまたは外部に保存されている状態
ロールバック後にこれらのリソースを調停するのは開発者の責任です。そのため、heroku rollback
コマンドは確実に必要な場合にのみ使用してください。
ロールバックしたリリースでの実行はあくまで、デプロイ失敗に対する一時的な解決策です。ロールバックしたリリースで実行している場合、発生した問題の修正をコミットし、Heroku にプッシュしてください。いつものように、これによって heroku
Git リモートが更新され、新しいリリースが作成されます。