- Jun
- 6
- 2015
Migrating to the Celadon Cedar-14 Stack from Bamboo(Lokkaの場合)
HerokuからBambooスタックを終了するからCedarスタックにマイグレーションせよというお知らせが随分前から届いていたけどそろそろ期限が迫っているのでこのブログの対応をした。
https://devcenter.heroku.com/articles/cedar-migration
最初はHerokuのガイド通りにやってみようと思ったけど使うべきrubyのバージョンとかがなんだかよくわからないので、新しくLokkaブログを作って元の名前にリネームしちゃうという戦法でやってみた。
1.DBダンプの取得
ここから既存のアプリのデータベースダンプを取得
2.新しいLokkaアプリの作成
Lokkaのサイトに書いてあるやり方はやや古いのでレポジトリのREADMEに沿って作成
$ git clone git://github.com/lokka/lokka.git $ cd lokka $ heroku create --remote heroku george-osd-blog-cedar $ git push heroku master $ heroku addons:add heroku-postgresql:dev
$ heroku pg:info | head -n1 | awk '{print $2}' | xargs heroku pg:promote $ heroku rake db:setup $ heroku open
これで新しいアプリが出来上がる。
3.DBリストア
https://devcenter.heroku.com/articles/heroku-postgres-import-export
リストアするファイルはHTTP(S)で取得できる場所にある必要があるようなのでS3などにアップせよとある。今回はDropBoxを使用した。
heroku pg:backups restore 'https://www.dropbox.com/{ダンプファイルまでのパス}?dl=1' HEROKU_POSTGRESQL_BLUE_URL -a george-osd-blog-cedar
DropBoxの公開リンクのURLはクエリーにdl=1としないと駄目っぽい。{HEROKU_POSTGRESQL_BLUE_URL}の部分はPostgresのアドオンを指定する。(config_varのvalueじゃなくてkeyを指定する。)
4. もう一度 rake db:setup
$ heroku rake db:setup
リストアはうまく行ったけど、アクセスしてみるとなんかDB関連のエラーっぽいのが出力されるのでもう一度 rake db:setupを実行すると治った。
5. アプリ名の変更
このままだと旧アプリは george-osd-blog.herokuapp.com、新しく作ったほうが george-osd-blog-cedar.herokuapp.comで動くので、何とかしたい。独自ドメインをとってもいいが昔とったはずのドメインが今はどうなっているのかよくわからないので思い切って古い方をダッシュボードから削除。http://george-osd-blog.herokuapp.com にアクセスしてアプリが動いてないことを確認。
そのあとに新しいアプリを元の名前にリネーム。
heroku apps:rename george-osd-blog --app george-osd-blog-cedar
これで完成。http://george-osd-blog.herokuapp.com にアクセスすると無事新しい方のアプリが表示されました。
マイグレーションせずにインスタンスを捨てて新しく作るという考えもありですね。
また、Lokkaを最新化したことでプレビューできないバグも治っているようで嬉しい。
相変わらずエディタは使いにくいけれど...