Help us understand the problem. What is going on with this article?

HerokuでのDB移行

More than 3 years have passed since last update.

お仕事のアプリ移行の前に、ほそぼそとやっている自社サービスの 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で動いていることまで確認できる。

ms2sato
何でも屋だが、最近はRails中心。JavaScript好き。レビューやタスク分解が多くて近頃仕事ではコード書けていない。仕事でもプライベートでもコラボできる人が常に欲しい人。 会社では人を育てるの中心で https://circlearound.co.jp/training/ こんなのやってます。 独り言はこっち https://ms2sato.circlearound.co.jp
https://circlearound.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away