heroku: dbのbackupからMACへのリストアまで

概要

heroku pg を利用しているのでそのbackupをとって、ローカルのマックにリストアするところまで。
heroku コマンドで確認できます。

バックアップの確認

下記のコマンドで今アプリで使用しているデータベースのバックアップ一覧が確認できます。

$ heroku pg:backups -a APP_NAME
=== Backups
ID Created at Status Size Database
──── ───────────────────────── ─────────────────────────────────── ─────── ────────
b001 2016-12-24 04:08:31 +0000 Completed 2016-12-24 04:08:34 +0000 10.77kB DATABASE
=== Restores
No restores found. Use heroku pg:backups:restore to restore a backup
=== Copies
No copies found. Use heroku pg:copy to copy a database to another
バックアップの作成
バックアップを作成するコマンド
heroku pg:backups capture -a APP_NAME
Starting backup of postgresql-tapered-96268... done
Use Ctrl-C at any time to stop monitoring progress; the backup will continue running.
Use heroku pg:backups:info to check progress.
Stop a running backup with heroku pg:backups:cancel.
Backing up DATABASE to b002... done
もう一度確認すると増えているのがわかるかと思います
$ heroku pg:backups -a APP_NAME
=== Backups
ID Created at Status Size Database
──── ───────────────────────── ─────────────────────────────────── ─────── ────────
b002 2016-12-24 04:35:24 +0000 Completed 2016-12-24 04:35:25 +0000 10.77kB DATABASE
b001 2016-12-24 04:08:31 +0000 Completed 2016-12-24 04:08:34 +0000 10.77kB DATABASE
=== Restores
No restores found. Use heroku pg:backups:restore to restore a backup
=== Copies
No copies found. Use heroku pg:copy to copy a database to another
ローカルにリストアする
バックアップをローカルにダウンロードする
$ curl -o DUMPNAME `heroku pg:backups public-url -a APP_NAME`
portgresqlにリストアする
取得したダンプファイルを読み込みます。
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -d DATABASE_NAME DUMPNAME
以上でできた。herokuお手軽です。