heroku cedar-10が2015年11月以降使えなくなるそうだ
heroku にpushしたら、実行環境(runtime environment)が古いので、バージョンアップしてくださいと言われた。
最新のCedar-14は、Ubuntu OS のver 14.04 を採用している。プロジェクトで使用しているRubyは2.1.0なので、Cedar-14にするには、2.1系の最新版(2.1.5)にしないといけない。
各スタックと、対応している言語のバージョンは以下から見られる。
Rubyのバージョンを上げる
$ brew upgrade ruby-build すると、インストール可能なRubyのバージョンが更新される。今回は2.2.1にアップグレードした。Gemfileのバージョンも修正する。
まずはステージングで試そう
herokuのブログにCedar-14に変更する方法が書いてある。
(以下は引用。 Migrating to the Celadon Cedar-14 Stack | Heroku Dev Center より)
Before upgrading an existing application to Cedar-14, you should test the upgrade on a Cedar-14 staging app that is not getting production traffic. You can create a staging app to use for testing, let’s call the git remote
heroku-cedar-14
and the appcedar-14-app
:
既存のアプリケーションをCedar-14にアップグレードする前に、本番からのアクセスがないステージングアプリケーションを、Cedar-14にアップグレードして、テストしてみましょう。テストのためのステージングアプリケーションを作ることができます。gitのリモートブランチheroku-cedar-14を作って、heroku上のcedar-14-appというアプリケーションにデプロイできるようにしましょう。
$ heroku create --remote heroku-cedar-14 --stack cedar-14 cedar-14-app-name
本番と同じように
- アドオン
- 環境変数
- config/secrets.yml
- config/environments/staging.rb
等追加して、ステージングにデプロイしましょう。
$ git push heroku-cedar-14 master
$ heroku run rake db:migrate --app cedar-14-app-name
デプロイ後、ステージングアプリケーションに問題がないか、確認しましょう。問題がなければ、本番もアップデートして良いそうです。
スタックの変更は非常に簡単
$ heroku stack で使用中のstackが表示
$ heroku stack:set cedar-14 で、cedar-14に変更
再び、$ heroku stack
そして、$ git push してみる。変更がなくてもコミットできるんだ!
$ git commit --allow-empty -m "Upgrading to Cedar-14"
$ git push heroku master
以上で、Rubyのバージョンアップとstackのバージョンアップが完了でござるー!