herokuのデータをローカルのpgadminでリストア
テスト環境のデータを、ローカルで使いたいんですよ…それだけなんすよ…
技術者さんのリストア記事(感謝
個人の感想
①heroku cli をつかってわざわざダウンロードめんどくさい
②dumpにしてダウンロードしたのに、リストアでエラーが出たorz(補足1)
個人の対応方法
※あくまで私の環境でうまくいっただけなので、真似して実施するかはご自身の責任で…。うまくいくことを祈ってます。
1. herokuのpg画面からダウンロードボタン押す
ここのダウンロードで、なんとかできないか…?
2. わかりやすいよう名前を付けて好きなところに保存
ダウンロードしてきたファイルは、半角英数で拡張子なしになっているので任意の名前を付ける
(私は英数だけで名前つけました)
3. pgadminで任意名のDBを作る
4. 対象DBを右クリックして、「リストア」を選択
5. ファイル名の「…」をクリックして、ダウンロードしてきたファイルを選択
このとき、「形式」を「すべてのファイル」にしないと、ダウンロードしたファイルは見えないので注意。
6. リストアオプションタブでオプション設定
所有者と権限を「保存しない→YES」に変更
※これを設定しないと、ユーザが云々みたいなエラーが起きてた。メモしてないけど。
7. リストアボタンクリック→終了まで待機
↓
こうなれば成功
いちおう、データ見たり、いくつかSQL試してみて、動きそうだったのでOKとします。
補足1:pg_restoreのエラーについて
pg_restore: [アーカイバ] ファイルヘッダ内のバージョン(x.xx)はサポートされていません
pg_restore: [archiver] unsupported version (x.xx) in file header
というエラーが出た。
おそらくherouk helpに載っている
と思われる。
こういう記事もあったし。
>pg_restore --version
pg_restore (PostgreSQL) 11.9
pg_restoreは11、herokuで使っていたバージョンは12。
ただし、ローカルにはもう12があるんだよ…どうすればいいんだってばよ!?
ということで、対策諦めた。(未来の担当者すみません)
pg_restoreしか手立てがなかったら対策を続けた。
未来の担当者へ:
明示的に指示すればいい、という記事もあったし、pgadminで実行しているコマンドもこれっぽかったです。
xxxxx\PostgreSQL\12\bin\pg_restore.exe --host "localhost" --port "5433" --username "postgres" --no-password --dbname "test-restore" --no-owner --no-privileges --verbose "(ファイルのある場所)"
この記事が気に入ったらサポートをしてみませんか?