SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

herokuの本番DBのコピーをとって開発環境に適用させる方法


Railsでherokuを使い、簡易なアプリケーションを作っている時に

本番環境DBから開発環境へデータをコピーする方法

環境

CLIでdumpを作ってダウンロードする

heroku pg:backups capture --app APPNAME

でbackupを作成

ダウンロードする方法

herokuのダッシュボードからも可能

f:id:Saku-Saku:20211210022448j:plain

f:id:Saku-Saku:20211210022451j:plain

リストアする方法

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

https://qiita.com/akiko-pusu/items/3847deb103c9e8346c89

https://qiita.com/rice_american/items/ceae28dad13c3977e3a8