herokuのデータベースをローカルにリストアする

Shunsuke Sawada

ローカル環境に本番環境のデータベースを持ってきて開発を続けることもあるのでメモ。

まずは本番環境の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
  

26
Shunsuke Sawada

おすすめの記事

Rails whereの検索で否定を使う
3
Railsを4.2にバージョンアップしたら、Vagrantのローカル開発環境にアクセスできなくなった問題
Railsのバリデーションエラー後にレイアウトが崩れるとき