heroku cedar-10が2015年11月以降使えなくなるそうだ

heroku にpushしたら、実行環境(runtime environment)が古いので、バージョンアップしてくださいと言われた。

f:id:bambinya:20150323203239p:plain

最新のCedar-14は、Ubuntu OS のver 14.04 を採用している。プロジェクトで使用しているRubyは2.1.0なので、Cedar-14にするには、2.1系の最新版(2.1.5)にしないといけない。

各スタックと、対応している言語のバージョンは以下から見られる。

devcenter.heroku.com

 

 Rubyのバージョンを上げる

$ brew upgrade ruby-build すると、インストール可能なRubyのバージョンが更新される。今回は2.2.1にアップグレードした。Gemfileのバージョンも修正する。

f:id:bambinya:20150324220300p:plain

f:id:bambinya:20150324220307p:plain

 

まずはステージングで試そう

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 app cedar-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

f:id:bambinya:20150323222140p:plain

本番と同じように

  • アドオン
  • 環境変数
  • 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

f:id:bambinya:20150325215846p:plain

そして、$ git push してみる。変更がなくてもコミットできるんだ!

 $ git commit --allow-empty -m "Upgrading to Cedar-14"
 $ git push heroku master

以上で、Rubyのバージョンアップとstackのバージョンアップが完了でござるー!