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 === 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
DBを切り替える
HEROKU_POSTGRESQL_IVORY_URLに切り替えます。
heroku pg:promote HEROKU_POSTGRESQL_IVORY_URL
切り替え後の状態を確認
HEROKU_POSTGRESQL_IVORY_URLとDATABASE_URLの環境変数には同じ値に変更され、旧DBはHEROKU_POSTGRESQL_PUCE_URLに置き換わっていることが確認できます。
heroku pg:info === 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