Python

HerokuのPostgresデータベースをアップグレード

HerokuのDBプランのアップグレード

今までは、Herokuの無料プランで運営していたが、気付いたらPostgresのデータ容量が超過していた。

無料のhobby-devを利用していたが制限の10,000レコードをいつの間にか超過しており、

レコード数を削減すればこのまま無料プランで問題ないのですが、それではいたちごっこになってしまうので、これを気に有料プランへ変更してみることにしました。

DBに関しては無料プランの次がhobby-basicというプランで、レコード制限は1000倍の10,000,000レコードになるが、9$/月の費用が発生します

今回はお試しも兼ねてアップグレードをしてみることにしました。

アップグレード手順

 

 hobby-basicを追加する

heroku addons:create heroku-postgresql:hobby-basic -a <アプリ名>

hpbbyプランのアップグレードの場合は既存のプランをアップグレードするのではなく、既存のDBはそのままで、新しくDBを作成し、そこに既存データを移行する流れになります。

この際に新しく作成されるDBはHEROKU_POSTGRESQL_OLIVE_URLのようにHEROKU_POSTGRESQL_<カラー名>_URLのような名称で作成されます。

 DBを停止する

heroku pg:wait -a <アプリ名>

 

 対象アプリケーションをメンテナンスモードにする

heroku maintenance:on -a <アプリ名>

 

 既存のDBを新規DBにコピーする

heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_<カラー名>_URL -a <アプリ名>

上記コマンドを実行時には実行確認のためにアプリ名の入力が求められますのでアプリ名を入力する必要があります。

 DBのプライマリ参照先の変更

heroku pg:promote HEROKU_POSTGRESQL_OLIVE_URL -a <アプリ名>

 

 メンテナンスモードの終了

heroku maintenance:off -a <アプリ名>

 

これでプランのアップグレード完了です。

注意点としてはhobby-basicの場合はアップグレードというよりも新規作成になるのでDBへの接続先やユーザ名、パスワードも変わるので注意が必要です。

最後に🙇‍♂️

今回の機能を実際に実装して作ったサービスが以下になります。

一度、ご利用いただければと思います。

どっちらいく

あなたはどっちを選ぶ?どっちらいくとは? どっちらいく どっちらいくとはユーザが投稿した2択のテーマ(お題)に関してどっちが 好きか、良いか、イケてる...

今回の機能について等々、それ以外のことでもいつでもご質問お待ちしております!