行動すれば次の現実

ほどよくモダンなシステム開発を目指しています。メインテーマは生産性、Ruby、Javascriptです。

HerokuのDBを有料プラン(hobby)に切り替える方法

Herokuのposgresql DB無料版から有料版(hobby)に移行する手順をまとめます。

1. 有料版DB(hobby)を作成する

Herokuの管理画面からAdd-onsを追加するか、下記コマンドを実行します。

heroku addons:create heroku-postgresql:hobby-basic your-app-name

2. 現状の構成を確認

環境変数DATABASE_URLはHobby-devに当たっていることが確認できます。

$ heroku pg:info -a your-app-name
=== DATABASE_URL
Plan:                  Hobby-dev
Status:                Available
Connections:           0/20
PG Version:            13.4
Created:               2021-10-19 11:24 UTC
Data Size:             9.0 MB/1.00 GB (In compliance)
Tables:                11
Rows:                  30/10000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-aerodynamic-111111

=== HEROKU_POSTGRESQL_IVORY_URL
Plan:                  Hobby-basic
Status:                Available
Connections:           0/20
PG Version:            13.4
Created:               2021-10-19 11:31 UTC
Data Size:             8.9 MB/10.00 GB (In compliance)
Tables:                11
Rows:                  30/10000000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-symmetrical-222222

DBをコピーする

DATABASE_URLのデータをHEROKU_POSTGRESQL_IVORY_URLにコピーします。

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_IVORY_URL -a your-app-name

DBを切り替える

HEROKU_POSTGRESQL_IVORY_URLに切り替えます。

heroku pg:promote HEROKU_POSTGRESQL_IVORY_URL -a your-app-name

切り替え後の状態を確認

HEROKU_POSTGRESQL_IVORY_URLとDATABASE_URLの環境変数には同じ値に変更され、旧DBはHEROKU_POSTGRESQL_PUCE_URLに置き換わっていることが確認できます。

heroku pg:info -a your-app-name

=== HEROKU_POSTGRESQL_IVORY_URL, DATABASE_URL
Plan:                  Hobby-basic
Status:                Available
Connections:           0/20
PG Version:            13.4
Created:               2021-10-19 11:31 UTC
Data Size:             8.9 MB/10.00 GB (In compliance)
Tables:                11
Rows:                  30/10000000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-symmetrical-222222

=== HEROKU_POSTGRESQL_PUCE_URL
Plan:                  Hobby-dev
Status:                Available
Connections:           0/20
PG Version:            13.4
Created:               2021-10-19 11:24 UTC
Data Size:             9.0 MB/1.00 GB (In compliance)
Tables:                11
Rows:                  30/10000 (In compliance)
Fork/Follow:           Unsupported
Rollback:              Unsupported
Continuous Protection: Off
Add-on:                postgresql-aerodynamic-111111

旧DBを削除する

HEROKU_POSTGRESQL_PUCE_URLは不要なので削除しておきます。

heroku addons:destroy HEROKU_POSTGRESQL_PUCE_URL -a your-app-name