LoginSignup
50
43

More than 3 years have passed since last update.

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

Last updated at Posted at 2017-03-02

内容

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
50
43
1

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
50
43