PG Backupsというアドオンを使うとHeroku上のPostgreSQLからデータをバックアップしたり、エクスポート・インポートしたりできる。
使い方はDev Centerに載っている通り。
ここではデフォルトで提供されるDATABASE_URL
なDBに入っているデータをローカルのPostgreSQLに入れる手順をメモっておく。
インストール
$ heroku addons:add pgbackups
----> Adding pgbackups to poison-beta... done, v319 (free)
You can now use "pgbackups" to backup your databases or import an external backup.
バックアップ
$ heroku pgbackups:capture
SHARED_DATABASE (DATABASE_URL) ----backup---> b001
このとき表示されたb001
というのがバックアップしたデータのID。
バックアップ一覧
$ heroku pgbackups
ファイルに落とす
$ heroku pgbackups:url b001
"https://s3.amazonaws.com/hkpgbackups/...."
AWS S3上のURLが表示されるので、ここにアクセスするとPostgreSQLからダンプされたファイルをダウンロードできる。10分間だけ有効。
落としてきたデータはps_restoreを使うことでローカルのPostgreSQLにインポートできる。
$ pg_restore --verbose --clean --no-acl --no-owner -h myhost -U myuser -d mydb b001.dump
(ちなみに)バックアップからレストア
$ heroku pgbackups:restore DATABASE b001
(ちなみに)バックアップを削除する
$ heroku pgbackups:destroy b001