AWS Elastic Beanstalk 和 rails:pg_restore: [archiver] 文件头中不支持的版本 (1.13)

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 和 rails:pg_restore: [archiver] 文件头中不支持的版本 (1.13)【英文标题】:AWS Elatic Beanstalk and rails: pg_restore: [archiver] unsupported version (1.13) in file header 【发布时间】:2019-11-23 04:03:40 【问题描述】:

我正在尝试从 heroku 转移到亚马逊 aws,并且在我使用以下方式转储数据库之后:

heroku pg:backups:capture
heroku pg:backups:download

我跑了:

eb ssh
cd /var/app/current    
pg_restore -v -h $NAME.$ID.$DATACENTER.rds.amazonaws.com -U $RDS_ROOT_USER -d $DATABASE_NAME latest.dump

我收到以下错误:

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

顺便说一句,我正在使用导轨。

我做错了什么?

【问题讨论】:

你使用的是哪个 postgres 版本? @AbhishekKushwaha 9.2.4 我遇到了同样的情况,升级你的RDS实例的postgres版本将解决这个问题。 @AbhishekKushwaha 我选择了 RDS 实例并将 postgres 版本更新为 11.4-R1 并再次尝试但没有成功 您是否遇到同样的错误?如果没有,请将您的错误放在这里。 【参考方案1】:

您使用的是旧版本的 pg_restore 二进制文件,它不支持恢复提供的转储文件。请确保您使用最新的 Postgres 版本,该版本必须高于以下版本:https://www.postgresql.org/about/news/1834/(10.3、9.6.8、9.5.12、9.4.17 和 9.3.22)。

您可以通过运行 pg_restore --version 来检查您正在使用的 pg_restore 版本。

如果您使用第三方工具(例如 PgAdmin)来恢复提供的转储文件,即使安装的 Postgres 版本是最新的,恢复也可能不会成功。这是因为第三方工具经常捆绑他们自己的 pg_restore 二进制文件版本,这可能不是最新的。

点击此链接:Why am I getting pg_restore

【讨论】:

以上是关于AWS Elastic Beanstalk 和 rails:pg_restore: [archiver] 文件头中不支持的版本 (1.13)的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 错误 - 乘客

AWS Elastic Beanstalk 上的闪亮服务器与 Docker

将 create-react-app 部署到 AWS Elastic Beanstalk

AWS Elastic Beanstalk 部署错误:502 Bad Gateway - Django 应用程序

AWS 和 Elastic Beanstalk

使用 AWS 和 Elastic Beanstalk 的 Websocket