fkm_y' log

技術や日常のログ

HerokuのPostgreSQLのプラン変更に伴いデータ移行したときのメモ

無料枠で使っていたHerokuのPostgreSQLを有料枠に変更して使う必要が出て移行したときのメモ

背景

  • HerokuのPostgreSQLの無料枠のレコード上限の10,000件に近づいていたため hobby-basic プランを契約して10,000,000まで保存できるようにしたかった。

前提

  • 有料プランを課金すると新規DBのURLとしてHEROKU_POSTGRESQL_AMBER_URLが追加された。
  • {HEROKU_POSTGRESQL_COLOR_URL}は新DBのURL(私が対応した際はHEROKU_POSTGRESQL_AMBER_URLを利用)
  • {APP_NAME}はアプリ名

作業

ログイン

heroku login

メンテナンスモードON

heroku maintenance:on --app {APP_NAME}

バックアップ

Heroku管理画面上から「Heroku Postgres」→「Durability」→「Create Manual Backup」ボタンを押してバックアップを取ることができる

DBのデータコピー

heroku pg:copy DATABASE_URL {HEROKU_POSTGRESQL_COLOR_URL} --app {APP_NAME}

確認を求められるので {APP_NAME} を入力 ※DATABASE_URLは旧DBのURLとなります。環境

DBの切り替え

heroku pg:promote {HEROKU_POSTGRESQL_COLOR_URL} --app {APP_NAME}

  • 切り替わっていることを確認 heroku pg:info --app {APP_NAME}

メンテナンスモードOFF

heroku maintenance:off --app {APP_NAME}