Heroku:pg_restore:文件头中的[archiver]不支持的版本(1.14)

时间:2019-12-26 01:08:41

标签: heroku heroku-postgres

我有一个本地postresql数据库,我正在尝试将其导入到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版本导致了该问题,但是我拥有最新的版本。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

为您省钱,这是解决方法:

以简单的SQL格式进行转储:

pg_dump --no-owner mydb > mydb.dump

您可能需要切换到有权访问您的数据库的用户,例如postgres。因此,

sudo su postgres 

然后进行转储。

然后使用psql工具加载它:

user@pc:~/path/to/your/dump$ heroku pg:psql < mydb.dump

答案 1 :(得分:0)

我的问题是我在 Heroku 上的 postgres 版本很旧(10.x)。您可以前往您的应用的 postgres 插件页面进行检查。

这里有非常明确的升级说明:https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases