Mar*_*rom 161 postgresql heroku pg-restore
我刚刚在mac os上升级到postgres 10.2,在heroku上匹配10.2.我正在尝试下载数据库的副本并在本地恢复它.在升级之前,恢复将正常工作.
我跑
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
pg_restore:[archiver]文件头中不支持的版本(1.13)
数据库似乎工作正常.它是一个rails应用程序,我升级了pg宝石.我可以跑rake db:create,db:migrate也很好.
小智 193
您需要升级本地postgres才能获得2018-03-01的最后一个安全补丁,就像Heroku第一次游行一样.你需要的最后版本之一10.3,9.6.8,9.5.12,9.4.17,和9.3.22.
安全补丁可以在https://www.postgresql.org/about/news/1834/找到.
似乎补丁修改了pg_dump,这可能就是为什么我们不能再使用pg_restore而没有针对Heroku转储的补丁(应用补丁).
Can*_*nuk 18
今天我遇到了同样的问题,我不知道Heroku方面是否有什么变化,因为本地我运行9.6但是Heroku上的数据库是9.4,所以它似乎不是关于版本点差异(它一直工作到今天.)
如果您在Mac上使用Postgres.app(https://postgresapp.com/),请确保您正在运行v2.1.3(截至撰写本文时为最新版本).当您升级Postgres.app时,您将获得Postgres的最新补丁版本(这可能会导致您目前遇到的不匹配 - Heroku已升级为最新的安全补丁,而您的本地机器可能没有它).
我不得不将Postgres.app从2.1.0升级到2.1.3,它解决了这个问题.
小智 12
从昨天(03/01/2018)开始,我们在从PostgreSQL 9.5上运行的Heroku恢复备份时遇到了问题:
pg_restore: [archiver] unsupported version (1.13) in file header
Run Code Online (Sandbox Code Playgroud)
将我们的PostgreSQL版本从9.5.11升级到9.5.12解决了这个问题.
小智 12
我第一次遇到这个问题,这是我如何将Heroku数据库恢复到我的本地:
$ rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>
Run Code Online (Sandbox Code Playgroud)
对于那些试图在Ubuntu中升级postgresql而没有成功的人(如上面评论的Johan),尝试使用PostgreSQL apt存储库,如官方PostgreSQL下载说明中所述:https://www.postgresql.org/download/linux/ubuntu /
deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
我的修复包括更新我的Postgres.app和更新我的本地自制的PostgreSQL.
通过Canuk的回答更新我的Postgres.app:
通过gerry3对已接受答案的评论更新我当地的自制PostgreSQL:
brew upgrade postgresql brew postgresql-upgrade-database
我不建议您在本地将数据库升级到新的主要版本(请应用安全补丁),只是为了解决这个问题,因为您希望匹配生产中的任何版本.
这修复了它在Ubuntu 16.04上,从Heroku数据库恢复.
首先,确保你有postgresql repo作为diego提到.然后安装升级后的客户端.
sudo apt-get update && sudo apt-get install postgresql-client-10
如果你的Ubuntu 17.04或17.10,注意PostgreSQL的兴致回购并不会有更新的客户的需要.您将需要使用xenial Postgres repo.
在Windows上使用pgAdmin 3出现此问题。
从pgAdmin 3升级到pgAdmin 4为我解决了这个问题。
如果您使用第三方工具(例如PgAdmin)还原提供的转储文件,则即使安装的Postgres版本是最新的,还原也可能无法成功。这是由于第三方工具经常捆绑自己的pg_restore二进制版本,而这些版本可能不是最新的。 https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore
小智 5
我在 pgadmin III 上遇到了这个问题,并能够通过切换二进制文件位置来修复它:
文件菜单 > 选项 > 二进制路径,然后将“PG bin 路径”更改为 postgresql/9.x/bin 而不是 ProgramFiles/pgadmin。之后恢复效果很好。
| 归档时间: |
|
| 查看次数: |
66410 次 |
| 最近记录: |