我有一个java应用程序和postgresql数据库,可以在Heroku上运行它。我可以推送我的应用程序,但DB内容怎么样?我从数据库导出了一个完整的转储,但我不知道如何导入它。
通过谷歌搜索,您可以找到有限的rubygem db:push,而不是推送所需的所有东西。我有序列,bigint数据类型等。我也尝试使用heroku pg:psql --app MYAPP < db_all.out
进行导入,只需连接和停止,然后转到heroku pg:psql --app MYAPP
并发出有关权限的\i db_all.out
投诉。
我该怎么做?
答案 0 :(得分:13)
您可以使用pg_restore
提供的凭据从本地计算机运行heroku pg:credentials HEROKU_POSTGRESQL_<COLOR>
命令。
答案 1 :(得分:2)
为了帮助仍然遇到此问题的其他人,对我有用的是 hgmnz's answer,但做了一些修改。
更准确地说:
$ PGPASSWORD=YOUR_PG_PASSWORD pg_dump -Fc --no-acl --no-owner -h localhost -U YOUR_PG_USER YOUR_DB_NAME > YOUR_DB_NAME.dump
$ heroku pg:credentials:url -a YOUR_APP_NAME
$ pg_restore --verbose --clean --no-acl --no-owner -h HOSTNAME -U USER -d DATABASE -p PORT PATH/TO/YOUR_DB_NAME.dump --password