42
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

herokuのpostgresqlをアップグレードする

内容

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
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
Sign upLogin
42
Help us understand the problem. What are the problem?