🦄
HerokuのPostgresデータベースをアップグレードする方法
Heroku の Postgres データベースをアップグレードしていきます。
個人利用や開発段階では無料のデータベースでも十分ですが、本格的なアプリを運用しようとすると、アップグレードが必要になってきます。
コンテナ(Dyno)のアップグレードは、Heroku の画面で変更が可能なので、簡単にアップグレードできます。
しかし、無料の Postgres データベースから有料のデータベースに変更するには、コマンドで実行が必要になってきます。
すでに運用済みで、途中からアップグレードしたい方など、不安かと思いましたので、紹介します。
ぜひ参考にして下さい。
動画でも解説しています。
動画解説
価格
本格的なアプリで運用すると、下記の価格になります。
Dyno: Standard 1X($25)
Postgres: Standard($50)
アップグレード
基本的には公式ドキュメントを参考にして下さい。
スタンダードプランにアップグレードします。
// 現状確認
$ heroku pg:info -a アプリ名
// 新しいDBを作成
// Hobby Basicにしたい方
// heroku addons:create heroku-postgresql:hobby-basic -a アプリ名
$ heroku addons:create heroku-postgresql:standard-0 -a アプリ名
// DB停止
$ heroku pg:wait -a アプリ名
// メンテナンスモードON
$ heroku maintenance:on -a アプリ名
// カラー名を確認
$ heroku pg:info -a アプリ名
// DBをコピー
$ heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_カラー名 -a アプリ名
// DB参照先変更
$ heroku pg:promote HEROKU_POSTGRESQL_カラー名 -a アプリ名
// メンテナンスモードOFF
$ heroku maintenance:off -a アプリ名
// DATABASE_URLが新しいDBに代わっているか確認
$ heroku pg:info -a アプリ名
ダウングレード
ダウングレードもアップグレードと同じ方法ですることができます。
// 現状確認
$ heroku pg:info -a アプリ名
// DB停止
$ heroku pg:wait -a アプリ名
// メンテナンスモードON
$ heroku maintenance:on -a アプリ名
// DBをコピー
$ heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_カラー名 -a アプリ名
// DB参照先変更
$ heroku pg:promote HEROKU_POSTGRESQL_カラー名 -a アプリ名
// メンテナンスモードOFF
$ heroku maintenance:off -a アプリ名
// DATABASE_URLが新しいDBに代わっているか確認
$ heroku pg:info -a アプリ名
使用していた DB アドオンを削除する。
Heroku の画面からアドオンを消すことができます。
バックアップ
本格的なアプリの運営には、データベースのバックアップは必須になります。
公式ドキュメントを参考にして下さい。
// 現在のバックアップ状況を確認
$ heroku pg:backups:schedules -a アプリ名
// スケジュール設定
$ heroku pg:backups:schedule DATABASE_URL --at '4:00 Asia/Tokyo' -a アプリ名
// スケジュール確認
$ heroku pg:backups:schedules -a アプリ名
毎日 4 時にバックアップするように設定しました。
Heroku を使用すると簡単に設定することができます。
Discussion