Railsでherokuを使い、簡易なアプリケーションを作っている時に
本番環境DBから開発環境へデータをコピーする方法
環境
- Rails
- heroku
- pg
CLIでdumpを作ってダウンロードする
heroku pg:backups capture --app APPNAME
でbackupを作成
ダウンロードする方法
herokuのダッシュボードからも可能
リストアする方法
pg_restore -c -d XXXXX_dev ~/Downloads/YYY
-cでDBをdropしてからリストアしてくれる
エラーがでた
"PG::InsufficientPrivilege: ERROR: permission denied to create database"
のエラーが出てしまう。
そんな時は、database.ymlに記載されている
usernameのユーザに権限を付与する必要がある。
Superuserをなんでもつけるのは問題だけど、ひとまずこれで。
psql XXX_dev
で入ってから、
ALTER ROLE postgres WITH SUPERUSER; \du
これでリストされる。
参考
https://devcenter.heroku.com/articles/heroku-postgres-import-export#import