我有一个本地 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] 文件头中不支持的版本 (1.14)
我已经阅读了有关此主题的其他几篇文章,其中提到导致问题的 Postgres 版本过时,但我拥有最新版本。
最佳答案
为您节省一次点击,这是解决方法:
以简单的 SQL 格式进行转储:
pg_dump --no-owner mydb > mydb.dump
您可能需要切换到有权访问您的数据库的用户,例如 postgres。所以,
sudo su postgres
然后进行转储。
然后用psql工具载入:
user@pc:~/path/to/your/dump$ heroku pg:psql < mydb.dump
关于Heroku:pg_restore:[archiver] 文件头中不支持的版本 (1.14),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59482972/