我有一个本地Postgresql数据库,正在尝试导入到Heroku实例中。我安装了Postgresql 12.1。要创建我正在运行的转储文件:
pg_dump -Fc --no-acl --no-owner -h localhost -U nico nicoportfolio_development > mydb.dump
然后,我将转储文件添加到aws s3存储桶中。
根据heroku文档,我创建了一个预签名的url:
aws s3 presign s3://nicoportfolio/mydb.dump
最后,我运行heroku pg restore
命令
heroku pg:backups:restore 'https://nicoportfolio.s3.amazonaws.com/mydb.dump?AWSAccessKeyId=AKIA2LPDMAPORY7QOOUK&Expires=1577325774&Signature=z6mBKKOVd6wPcFtCc8cjkjoKTLA%3D' DATABASE_URL
我得到以下错误:
pg_restore: [archiver] unsupported version (1.14) in file header
我已经阅读了其他几篇关于这个话题的文章,其中提到了导致这个问题的Postgres的过时版本,但我有最新的版本。
发布于 2020-04-08 19:02:28
只需点击一下,下面就是修复方法:
以简单的SQL格式进行转储:
pg_dump --no-owner mydb > mydb.dump
您可能需要切换到有权访问您的数据库的用户,例如postgres。所以,
sudo su postgres
然后把它倒了。
然后用psql工具加载:
user@pc:~/path/to/your/dump$ heroku pg:psql < mydb.dump
发布于 2021-06-30 21:18:59
我这里的问题是我在Heroku上的postgres版本太旧(10.x)。你可以去你的应用程序的postgres附加页面查看这一点。
这里有非常明确的升级说明:https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases
https://stackoverflow.com/questions/59482972
复制相似问题