heroku pg:pushに失敗する際の対処法

Categories
Tags
Share

heroku pg:resetをした後に、heroku pg:pushをしたらこんなメッセージが…。

! Remote database is not empty.
! Please create a new database, or use `heroku pg:reset`

いやいや、resetしとるやん…。原因はわからないけれど、ググってみたら同様の症状になっている人をちらほらと見かけました。 対処方法もあったので、備忘録のために残しておきます。

参考ページ: Can’t push database to heroku because database is not empty error

dumpファイルを作成する

まずはheroku pg:pushするつもりだったデータベースのdumpファイルを作成します。--no-acl --no-ownerをつけておかないといけません。 local_db_nameは適宜、自分の環境のデータベース名に変更してください。

pg_dump --no-acl --no-owner -h localhost local_db_name -f local_db_name.dump

psqlで流し込む

次に以下のコードを実行します。heroku_app_nameも適宜、自分のherokuアプリ名に変更してください。

heroku pg:psql --app heroku_app_name < local_db_name.dump

これで、heroku pg:pushと同等のことができました。


comments powered by Disqus