Heroku の Postgres アドオンプラン
Heroku で Postgres を使いたい時はアドオンとしてデータベースを追加します。
無料プラン(Hobby Dev) では 10,000 レコードまで保存できます。
サービスの内容によってはリリース後のユーザー増によっては 10,000 レコードでは足りなくなってきます。
そんな時はアップグレードしましょう。一番安いプランは Hobby Basic で $9/月 です。
アップグレード手順
Heroku での DB のアップグレード手順は、
- 新しいプラン(ここでは Hobby Basic)のデータベースを追加
- 新しいデータベースに既存のデータベースの内容をコピー
- アプリケーションサーバの参照先に設定
になります。
1.新しいプラン(ここでは Hobby Basic)のデータベースを追加
コマンドでも追加できますがアドオンのページからも追加できます。
https://addons.heroku.com/heroku-postgresql
作成すると新規のデータベースを表す環境変数(HEROKU_POSTGRESQL_PINK_URL や HEROKU_POSTGRESQL_GREEN_URL などの色の名前がついた変数)が定義されます。
2. 新しいデータベースに既存のデータベースの内容をコピー
データベースをコピーする前にメンテナンスモードを on にして既存データベースをロックします。
heroku maintenance:on
heroku ps:scale worker=0
pg:copy を使って新しいデータベースにコピーをします。
heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR_URL --app APP_NAME
3. アプリケーションサーバの参照先に設定
データベースのコピーが終わったら新しいデータベースをアプリサーバの参照先に設定します。
heroku pg:promote HEROKU_POSTGRESQL_COLOR_URL
その後メンテナンスモードを off にして作業終了です。
heroku ps:scale worker=1
heroku maintenance:off
実行後
heroku pg:info でデータベースの状況が確認できます。
takecian$ heroku pg:info
=== HEROKU_POSTGRESQL_AMBER_URL
Plan: Hobby-dev
Status: Available
Connections: 0/20
PG Version: 9.3.6
Created: 2014-08-29 06:49 UTC
Data Size: 10.7 MB
Tables: 8
Rows: 8440/10000 (In compliance, close to row limit)
Fork/Follow: Unsupported
Rollback: Unsupported
=== HEROKU_POSTGRESQL_GREEN_URL (DATABASE_URL)
Plan: Hobby-basic
Status: Available
Connections: 1/20
PG Version: 9.4.1
Created: 2015-04-25 00:21 UTC
Data Size: 9.1 MB
Tables: 8
Rows: 8852/10000000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
参考