LoginSignup
10
13

More than 5 years have passed since last update.

HerokuでのDB移行

Last updated at Posted at 2015-02-17

お仕事のアプリ移行の前に、ほそぼそとやっている自社サービスの http://l-engine.com で試してみた。DBのバージョンアップも出来たので一石二鳥。

準備

Addonの追加でDB追加したらHEROKU_POSTGRESQL_ROSE_URLが割り当てられた。

heroku config --app myapp

などとすると新規のURLの存在を確認できる。

バックアップ

アプリの管理画面からCapture Backupしてバックアップ作成。何かあったらこれに戻ってくる。

メンテ開始

以下の手順でメンテ開始&DBの移行。

DBのコピー

heroku maintenance:on --app myapp

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_ROSE_URL --app myapp

ここまでしたら、新しい方のインスタンスにデータがちゃんと入ったか管理画面で確認する。今回は https://postgres.heroku.com/databases からDBを選択して見た。Rowsの数値などが変わればデータの移動には成功している。

DBの切り替え

続いて、DBの切り替えを行い、メンテモードを抜ける。

heroku pg:promote HEROKU_POSTGRESQL_ROSE --app myapp
heroku maintenance:off  --app myapp

確認

とりあえず何かDBに書き込まれるような操作を行って、新しいDBに反映されるのかをチェック。管理画面から下記の操作でpsqlできるとわかるのでこれをコンソールに貼り付けて実行。

heroku pg:psql --app myapp HEROKU_POSTGRESQL_ROSE
myapp::ROSE=> select * from mytable order by created_at desc

新規に書き込んだデータが無事に反映されていれば新DBで動いていることまで確認できる。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13