あまり記事がヒットせず少しハマったのでメモ
PostgreSQL heroku ローカルDBを本番環境へ
などで検索すると、S3にデータファイルをコピーして、本番環境のサーバーでそれを読み込むみたいな手順がよく出てくるのですが、なぜかサーバー側からS3にアクセスできなかったりハマりました。。。
ローカルに作成したdumpファイルを利用して本番環境に反映できたのでその手順です
ダンプ
まずはローカルのDB情報を取り出して保存します
(これダンプって言うの知りませんでした笑)
呪文が色々ありますが以下のようにターミナルに入力します
$ pg_dump --no-acl --no-owner -h localhost -U ユーザー名 データベース名 > mydb.dump
ユーザー名がhoge
、データベース名がhoge_development
とかなら次のように入力します
$ pg_dump --no-acl --no-owner -h localhost -U hoge hoge_development > mydb.dump
これでカレントディレクトリにmydb.dump
というファイルが作成されます
リストア
続いて本番環境に反映させます(リストアって言うらしい)
次のとおり入力するだけです
$ heroku pg:psql -a アプリ名 < mydb.dump
アプリ名がhoge
の場合は次のように入力します
$ heroku pg:psql -a hoge < mydb.dump
うまくいってればTable
とかデータベースを作ってるっぽいログが出てきます
(ターミナルの履歴残ってなくて載せられない笑)
はいこれだけで終了です
これだけのために何時間かかかりましたね〜
コマンドたったの2行なのに、、、
是非参考にしてくださいな