LoginSignup
49
42

More than 5 years have passed since last update.

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

Posted at

Heroku の Postgres アドオンプラン

Heroku で Postgres を使いたい時はアドオンとしてデータベースを追加します。

無料プラン(Hobby Dev) では 10,000 レコードまで保存できます。

サービスの内容によってはリリース後のユーザー増によっては 10,000 レコードでは足りなくなってきます。
そんな時はアップグレードしましょう。一番安いプランは Hobby Basic で $9/月 です。

アップグレード手順

Heroku での DB のアップグレード手順は、
1. 新しいプラン(ここでは Hobby Basic)のデータベースを追加
2. 新しいデータベースに既存のデータベースの内容をコピー
3. アプリケーションサーバの参照先に設定
になります。

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

参考

49
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
42