内容
herokuの無料プランから有料プランへアップグレード
pgのアップグレードは別のdbを作成して移行する流れになる
フロー
1 有料プランのpgを作成する
2 無料プランから有料プランへデータをコピー
手順
#{app_name}はアプリの名前
##0 現在の状況を確認
heroku pg:info -a #{app_name}
##1 pgのhobby-basicを追加
heroku addons:create heroku-postgresql:hobby-basic -a #{app_name}
# こんな感じの環境変数が生成される => HEROKU_POSTGRESQL_OLIVE_URL
##2 pgをwaitする
heroku pg:wait -a #{app_name}
##3 メンテナンスモードにする
heroku maintenance:on -a #{app_name}
##4 データをコピーする
この時に実行するか聞かれる
heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_OLIVE_URL -a #{app_name}
##5 dbの参照先を変更する
heroku pg:promote HEROKU_POSTGRESQL_OLIVE_URL -a #{app_name}
##6 変更されたか確認
DATABASE_URLがHobby-basicになっているか確認
heroku pg:info -a #{app_name}
=== DATABASE_URL, HEROKU_POSTGRESQL_OLIVE_URL
Plan: Hobby-basic
Status: Available
.
.
.
##7 メンテナンスモード解除
heroku maintenance:off -a #{app_name}
##8 定期的にバックアップを取るようにする
# 現在のバックアップの状況を確認。設定がない場合はこんな感じ
heroku pg:backups:schedules -a #{app_name}
▸ No backup schedules found on ⬢ #{app_name}
▸ Use heroku pg:backups:schedule to set one up
# スケジュールを設定
heroku pg:backups:schedule DATABASE_URL --at '4:00 Asia/Tokyo' -a #{app_name}
Scheduling automatic daily backups of postgresql-xxxxxxxx at 4:00 Asia/Tokyo... done
# スケジュール確認
heroku pg:backups:schedules -a #{app_name}
=== Backup Schedules
DATABASE_URL: daily at 4:00 Asia/Tokyo