herokuのデータベースをローカルにリストアする
ローカル環境に本番環境のデータベースを持ってきて開発を続けることもあるのでメモ。
まずは本番環境のDBのバックアップを取ります。
1
2
3
4
$ heroku pgbackups:capture
HEROKU_POSTGRESQL_COLOR_URL (DATABASE_URL) ----backup---> b040
この「b040」てのが今取ったバックアップの目印です。
バックアップファイルのURLは下のように取得できます。
1
2
3
$ heroku pgbackups:url b040
"https://s3.amazonaws.com/hkpgbackups/[email protected]/b040.dump?AWSAccessKeyId=AAAAAAAAAAAA&Expires=1396852629&Signature=BBBBBBBBBBBBBBBB%2CCCCC"
このURLを叩けばファイルがダウンロードできる。
ここでは、latest.dumpというファイルで保存しています。
1
$ curl -o latest.dump "https://s3.amazonaws.com/hkpgbackups/[email protected]/b040.dump?AWSAccessKeyId=AAAAAAAAAAAA&Expires=1396852629&Signature=BBBBBBBBBBBBBBBB%2CCCCC"
ダウンロードが完了したらローカルのDBにリストアして完了です。
user_nameとdatabase_nameは適宜置き換えてください。
1
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U user_name -d database_name latest.dump
エラーがいろいろ出ますが、herokuによると無視しても問題ないとのことです。
This will usually generate some warnings, due to differences between your Heroku database and a local database, but they are generally safe to ignore.
逆バージョンはコチラ。
ローカルのデータベースをherokuにリストアする
参考 : Importing and Exporting Heroku Postgres Databases with PG Backups