我在本地机器上有一个与应用程序关联的本地Postgres数据库,我想将该数据库复制到应用程序的Heroku部署中。
我试过了:
heroku pg:push localdatabasename DATABASE_URL --app my-appname-23895
在这里,我实际上使用了单词DATABASE_URL
,因为通过heroku config
列出我的环境变量表明,这是保存数据库url的变量的名称,而不是像HEROKU_POSTGRESQL_YELLOW
那样的颜色标识符。
Heroku回应:
heroku-cli: Pushing localdatabasename ---> postgresql-identifier-83435
然后在那里冻结而不返回bash提示。如果我打开另一个bash窗口并使用heroku pg:psql
登录到Heroku Postgres,那么当我使用dt
检查表结构时,我得到:
Did not find any relations.
然后,当我回到运行heroku pg:push
的bash窗口时,我按Ctrl+C退出,然后我得到错误消息:
pg_dump errored with 3221225786
或
pg_restore errored with 3221225786
不确定pg_dump
和pg_restore
的出现是否意味着推送数据库的速度非常慢,我应该等待更长的时间等待heroku pg:push
完成,或者推送过程是否有问题。我已经让它运行了3个多小时,没有明显的变化。
我也试过:
PGUSER=username PGPWD=password heroku pg:push localdatabasename DATABASE_URL --app my-appname-23895
并得到了相同的结果。
根据此处描述的解决方案,我没有使用pg:push
,而是使用了pg:dump
和heroku pg:backups:restore
。