Heroku を使っていてローカルで開発していると、ローカルで開発しているデータを
そのまま本番に移したいときがあった。
Herokuのチュートリアルを読むと、postgres のダンプファイルをS3に移してそれをpg_restore
を使ってコピーしろと書いてあったが、S3のアカウントをつくるのがめんどくさいので、できればS3を経由せずにローカルdumpできるか試してみると、できたのでメモ
まずはdump
$ pg_dump --no-acl --no-owner -h localhost -U user mydb > mydb.dump
そしてローカルにできたDBをherokuコマンドを使ってそのまま流しこむ
$ heroku pg:psql --app my-heroku-app HEROKU_POSTGRESQL_MYCOLOR < mydb.dump
---> Connecting to HEROKU_POSTGRESQL_AQUA_URL (DATABASE_URL)
SET
SET
SET
SET
SET
SET
CREATE EXTENSION
=====
中略
=====
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
COPY 746
setval
--------
2
(1 row)
COPY 378
setval
--------
1
(1 row)
COPY 731
setval
--------
1
(1 row)
COPY 4718
COPY 1320
ALTER TABLE
CREATE INDEX
CREATE INDEX
=====
中略
=====
上記のようにテーブルがクリエイトされ、データが流し込まれていれば成功
参考(heroku公式)
Importing and Exporting Heroku Postgres Databases with PG Backups