NOTO

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

 Date:2016-12-24 13:40:43 +0900
 Categories: ETC

概要

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お手軽です。
Tweet