Heroku Postgresデータベースのデータのバックアップをダウンロードする

HerokuのPostgresデータベースのバックアップデータをダウンロードする方法。
いくつかコマンド叩くだけでした。

アドオンのインストール

何はともあれ、PG Backupのアドオンが必要です。
インストール方法は以下。

$ heroku addons:add pgbackups

バックアップの作成

バックアップの作成は以下のコマンドで。

$ heroku pgbackups:capture

現在保持しているバックアップの一覧は以下で確認出来ます。

$ heroku pgbackups
ID   | Backup Time         | Size  | Database
-----+---------------------+-------+------------------------
a226 | 2012/02/22 20:02.19 | 5.3KB | DATABASE_URL
a227 | 2012/02/23 20:02.19 | 5.3KB | DATABASE_URL
b251 | 2012/02/24 16:08.02 | 5.3KB | HEROKU_POSTGRESQL_BLACK
b252 | 2012/02/24 16:08.53 | 5.3KB | HEROKU_POSTGRESQL_PINK

バックアップURLの確認

バックアップされているファイルのURLは以下で確認できます。

$ heroku pgbackups:url

Amazon S3のURLが表示されます。
これは、直近のバックアップ分を参照しますが、過去分の場合はIDを指定します。

$ heroku pgbackups:url ID

ファイルのダウンロード

curlを使ってダウンロードします。(wgetでもいいです)

$ curl -o latest.dump `URL`

ダウンロードしたファイルをローカルのDBにインポート

以下のpg_restoreコマンドでインポート出来る。

$ pg_restore --verbose --clean --no-acl --no-owner -h myhost -U myuser -d mydb b001.dump

ちなみに、herokuのPostgresは、9.x系のようで、8.x系でpg_restoreしようとすると、バージョン違いで怒られました。

pg_restore: [アーカイバ] ファイルヘッダ内のバージョン(1.12)はサポートされていません

参考

Importing and Exporting Heroku Postgres Databases with PG Backups
PG Backups

   このエントリーをはてなブックマークに追加