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