2012年12月11日火曜日

【heroku】DB(Postgres)をアップグレードする

herokuのPostgresは必要な状況に応じ、Dev(Free)から、Mecha($6,400/月)までプランが選択できます。
その中で、Dev、Basic($9/月)の両プランは、Starterカテゴリ(tier)になっていて、
Crane($50/月)〜Mechaは、Productionカテゴリ(tier)となっています。














これらのプランの中から、開発中はDevを使用しパフォーマンステストの為に、
大量のデータを投入する必要があるから、Basicへアップグレード、
本番環境を構築するから、Craneなどへアップグレードなど、アップグレードの必要が生じることがあるとおもいます。
今回は、herokuのPostgresのプランアップグレードと、データ移行する方法を書いてみます。
(今回は例としてDevからBasic(Starter同士)へのアップグレードを行います。)

準備
1 PG Backupsアドオンの追加
    管理コンソールで追加するか、コマンドだと
$ heroku addons:add pgbackups
    で、PG Backupsを追加しておく。

2 追加したPG Backupsを使用し、現在のデータのバックアップを取得する。
$ heroku pgbackups:capture
手順
1 アップグレードするアドオンを追加する。
$ heroku addons:add heroku-postgresql:basic
アドオンを追加すると、以下のようなメッセージが表示されるので、この中の
  HEROKU_POSTGRESQL_PINKの部分を控えておく
Adding heroku-postgresql:basic on sushi... done, v122 ($9/mo)
Attached as HEROKU_POSTGRESQL_PINK_URL
Database has been created and is available
Use `heroku addons:docs heroku-postgresql:basic` to view documentation.
2 PG Backupsで取得したバックアップを、新しいDBへリストアする。
$ heroku pgbackups:restore HEROKU_POSTGRESQL_PINK
この時、本当にいいの?と聞かれるので、hoge.herokuapp.comのhogeの部分を入力する

3 旧DBから新DBへアプリの向き先を変更する
$ heroku pg:promote HEROKU_POSTGRESQL_PINK
4 向き先変更の確認をする。
$ heroku pg:info
上のコマンドを打つと、Dev,Basic両方のDB情報が表示されるが、新しいDB(この場合だとHEROKU_POSTGRESQL_PINK)に、"DATABASE_URL"の表示があればOK

5 旧DBを削除
$ heroku addons:remove HEROKU_POSTGRESQL_ORANGE

以上、でアップグレードとデータ移行は完了です。

※heroku document url

0 件のコメント:

コメントを投稿