2015年4月15日

Heroku Postgres Databases のアップグレード方法

ここに記載している方法は、 2015/4/15 現在の方法です。
Herokuは適宜アップグレードされているので、データベースの移行も変更になる可能性があるので、公式ドキュメントはしっかりみましょう。

Heroku で Postgres Databases をデータベースとして使用しているシステムを作成しているのですが、もうすぐ容量がいっぱいになるよとメールの通知がきました。

それは困るので、メールに記載されているURLにアクセスし、確認しました。
https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-pgbackups-copy-default

さらに、他にも
http://qiita.com/shu_0115/items/3242b30954251c5803c4
も閲覧して、データベースの移行方法を調査しました。

作成した作業は以下の通り。
HEROKU_POSTGRESQL_COLORは、実際に定義されていた環境変数ではなく、Heroku Postgres アドオン追加時にCOLORの部分が違った環境が設定されるので、環境に合わせてください。
## メンテナンスモードに移行
# heroku maintenance:on --app herokuapp
## メンテナンスモードの確認
# heroku maintenance --app herokuapp
## データベースのバックアップ
# heroku pgbackups:capture --expire --app herokuapp
## バックアップの確認
# heroku pgbackups --app herokuapp
## データベースの移行
# heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR --app herokuapp
## デフォルトデータベースの変更
# heroku pg:promote HEROKU_POSTGRESQL_COLOR --app herokuapp
# 再起動
# heroku restart --app herokuapp
## メンテナンスモードの終了
# heroku maintenance:off --app herokuapp
## その確認確認
# heroku maintenance --app herokuapp
また、本番環境でいきなりテストは怖かったので、テスト環境を準備できるのなら、
無料のプラン Hobby Dev が複数 Heroku に追加できるので、それでテストができます。