herokuのpostgresデータベースをdevからbasicにアップグレードした

heroku上でpostgresデータベースはただのアドオンという扱いであるため、新しくbasicプランのpostgresアドオンを作成して、devからbasicにデータをダンプ・リストアするという手順になる。

 

まずは入っているアドオンを確認。


 

ダンプのアドオン(pgbackups:plus)が入っていない人はまず入れる。

 

現在のdevプランのデータベースをダンプする

 

basicプランのpostgresqlアドオンをインストール

basicプランは月あたり9ドルの有料アドオンで、料金一覧表はこちら

 

devプランのpostgresqlからダンプしておいたバックアップを作成したbasicプランのpostgresqlにリストアする。

まだdevプランのデータベース(HEROKU_POSTGRESQL_COBALT)がプライマリのため、引数無しでリストアするとdevプランのデータベース(HEROKU_POSTGRESQL_COBALT)にリストアされてしまうため、basicプランのデータベース名を指定してリストアする。

basicプランのデータベース名はheroku addonsコマンドで確認できる。

(データベース名に「_URL」をつけるのを忘れずに。)

 

まだdevプランのpostgresqlが使用されているので、basicプランのpostgresql(HEROKU_POSTGRESQL_BLACK_URL)を使用するように変更する。

 

アプリケーションが動作していることを確認したあとに、devプランのデータベースはもう削除する。

 

既に本番稼働している環境の場合

既に本番稼働している環境では、データベースの移行の間はサービスを停止して、利用者からデータが変更されないようにする必要がある。

作業前

メンテナンスモードにして、webサービスを止める。

作業完了後

作業が完了したら、再びwebサービスを立ち上げる。

参考

Herokuのドキュメント

Using PG Backups to Upgrade Heroku Postgres Databases

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=2561