postgresql - postgres - heroku reset database




Beim Ausführen von pg_restore wird "[archiver] nicht unterstützte Version(1.13) im Dateikopf" angezeigt (10)

Das Update für mich beinhaltete sowohl das Aktualisieren meiner Postgres.app als auch das Aktualisieren meines lokalen PostgreSQL-Homebrews.

Aktualisiere meine Postgres.app über Canuks Antwort:

Öffne Postgres.app> Nach Updates suchen ...

Aktualisiere mein lokales PostgreSQL-Homebrew über den Kommentar von gerry3 zu der akzeptierten Antwort:

brew upgrade postgresql brew postgresql-upgrade-database

Ich habe gerade ein Upgrade auf Postgres 10.2 für Mac OS durchgeführt, das 10.2 für Heroku entspricht. Ich versuche, eine Kopie der Datenbank herunterzuladen und lokal wiederherzustellen. Vor dem Upgrade würde die Wiederherstellung problemlos funktionieren.

ich renne

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump

aber ich erhalte diesen Fehler:

pg_restore: [archiver] nicht unterstützte Version (1.13) im Dateiheader

Die Datenbank scheint in Ordnung zu sein. Es ist eine Rails-App und ich habe die pg-Edelsteine ​​aktualisiert. Ich kann rake db:create und db:migrate ausführen.


Das erste Mal, dass ich dieses Problem hatte, habe ich die Heroku-Datenbank in meinem lokalen wiederhergestellt:

$ rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>

Hatte dieses Problem unter Windows mit pgAdmin 3.

Ein Upgrade von pgAdmin 3 auf pgAdmin 4 hat das Problem für mich gelöst.

Wenn Sie ein Drittanbieter-Tool wie PgAdmin zum Wiederherstellen der bereitgestellten Speicherauszugsdatei verwenden, schlägt die Wiederherstellung möglicherweise fehl, auch wenn die installierte Postgres-Version auf dem neuesten Stand ist. Dies liegt daran, dass Tools von Drittanbietern häufig ihre eigenen Versionen der Binärdatei pg_restore bündeln, die möglicherweise nicht auf dem neuesten Stand sind. https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore


Ich bin auf den gleichen Fehler gestoßen. Ich habe lokal auf postgresql 10.3 aktualisiert, und das hat das Problem für mich behoben.


Ich bin heute auf dasselbe Problem gestoßen. Ich weiß nicht, ob sich auf Herokus Seite etwas geändert hat, da ich lokal 9.6 ausführe, aber meine Datenbank auf Heroku 9.4 ist hat bis heute gearbeitet.)

Wenn Sie die Postgres.app ( https://postgresapp.com/ ) auf einem Mac verwenden, vergewissern Sie sich, dass Sie Version v2.1.3 (dies ist zum v2.1.3 der v2.1.3 die neueste Version). Wenn Sie die Postgres.app aktualisieren, erhalten Sie die neueste Patch-Version von Postgres (was wahrscheinlich die derzeitige Nichtübereinstimmung verursacht - Heroku hat ein Upgrade auf den neuesten Sicherheitspatch durchgeführt und Ihr lokaler Computer verfügt möglicherweise nicht über diesen).

Ich musste Postgres.app von 2.1.0 auf 2.1.3 aktualisieren und es löste das Problem.


Ich empfehle nicht, Ihre Datenbank lokal auf eine neue Hauptversion zu aktualisieren (wenden Sie Sicherheitspatches an), um dies zu beheben, da Sie möchten, dass dies mit der Version übereinstimmt, die Sie in der Produktion haben.

Dies behebt es unter Ubuntu 16.04 und stellt es aus einer Heroku-Datenbank wieder her.

Stellen Sie zunächst sicher, dass Sie das Postgresql-Repo wie diego erwähnt haben. Installieren Sie dann den aktualisierten Client.

sudo apt-get update && sudo apt-get install postgresql-client-10

Wenn Sie Ubuntu 17.04 oder 17.10 verwenden, beachten Sie, dass das Zesty Repo von PostgreSQL nicht die aktualisierten Clients enthält, die Sie benötigen. Sie sollten stattdessen das xeniale Postgres-Repo verwenden.


Seit gestern (03/01/2018) hatten wir auch Probleme, ein Backup von Heroku wiederherzustellen, das auf PostgreSQL 9.5 läuft:

pg_restore: [archiver] unsupported version (1.13) in file header

Ein Upgrade unserer PostgreSQL-Version von 9.5.11 auf 9.5.12 hat das Problem behoben.


Sie müssen Ihre lokalen Postgres aktualisieren, um den letzten Sicherheitspatch vom 01.03.2018 zu erhalten, wie es Heroku am 1. März getan hat. Sie benötigen eine der letzten Versionen 10.3 , 9.6.8 , 9.5.12 , 9.4.17 und 9.3.22 .

Den Sicherheitspatch finden Sie hier https://www.postgresql.org/about/news/1834/ .

Es scheint, dass der Patch pg_dump modifiziert wurde. Deshalb können wir pg_restore wahrscheinlich nicht mehr ohne diesen Patch für den Dump von Heroku verwenden (mit dem Patch).


So habe ich das Problem unter Ubuntu (16.04 LTS) behoben, bei dem mir pg_restore / pg_dump eine ältere Version von psql gab

$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8

$ psql --version
psql (PostgreSQL) 9.5.14

Das Problem ist, dass ich mehrere PG-Versionen installiert habe und pg_restore auf die frühere Version zeigte

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.4 main    5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

Das Update besteht darin, eine ~ / .postgresqlrc-Datei zu erstellen, die auf die richtige Version verweist

$ cat ~/.postgresqlrc

9.5 main *

Sobald dies erledigt ist, zeigt pg_restore auf die richtige Version und der Befehl wird ausgeführt

Details finden Sie hier: https://serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu


Wenn Sie versuchen, ein Upgrade von postgresql in Ubuntu ohne Erfolg durchzuführen (wie oben von Johan kommentiert), verwenden Sie das PostgreSQL-Repository, wie in den offiziellen PostgreSQL-Downloadanweisungen angegeben: 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






pg-restore