ブログ

読んで思い出す。忘れるために書く

Heroku の Stack をアップグレードした (Cedar-14 Stack EOL)

完成しててメンテしてないコードをそのまま放置してたら お知らせメールが来てた... ので対応した

たとえコードが完成したとしてもインフラや OS など、周りの環境は変化を続ける

Heroku からのお知らせ

内容はほぼお知らせメールの案内に記されてる通り

やったこと

やったことは おおまかに次の通り:

  • プラグインのインストール
  • 対象アプリのリストアップ
  • ローカルに Heroku アプリを clone (任意)
  • Stack のアップグレード
  • 空コミットの push

プラグインのインストールと対象アプリのリストアップ

heroku apps:table プラグインの機能を使うと Stack の属性値で絞り込み検索ができるらしい

heroku plugins:install apps-table
heroku apps:table --filter="STACK=cedar-14"

すでにお知らせメールが来ている通り、対象のアプリがいくつか挙がった

App Name                 Stack    Team
licensedownload          cedar-14 null
quiet-dusk-76044         cedar-14 null
...

ローカルに Heroku アプリを clone (任意)

長らくメンテしてないアプリだったので、手元の環境にソースコードがなかった

heroku git:clone でリモートからローカルに git リポジトリを転送してもらう

# オプションの -a [application name] でアプリ名を指定する
heroku git:clone -a licensedownload

(アプリが複数ある場合 必要な部分は同様に繰り返し操作する)

Stack のアップグレードと空コミットの push

利用する Stack の設定を更新する (現行の旧版から新しいバージョンに切り替え)

heroku stack:set heroku-18 -a licensedownload

Stack の設定変更をしても、実際の実行環境の差し替えはつぎのコミットから有効になるので、取り敢えず空のコミットを差し込む

# 空コミットの作成
git commit --allow-empty -m "Upgrading to heroku-18"

# Heroku 環境にデプロイ
git push heroku master

このとき、利用しているプログラミング言語のバージョン指定も旧いままで、あたらしい Stack では対応していない場合がある

その場合は対応したバージョンにアップグレードしておきたい (Ruby の場合: Heroku Ruby Support - Supported runtimes)

Links