Ich habe gerade ein Upgrade auf Postgres 10.2 auf Mac OS durchgeführt, das 10.2 auf Heroku entspricht. Ich versuche, eine Kopie der Datenbank herunterzuladen und lokal wiederherzustellen. Vor dem Upgrade würde die Wiederherstellung gut funktionieren.
ich renne
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
aber ich bekomme diesen Fehler:
pg_restore: [archiver] nicht unterstützte Version (1.13) im Dateikopf
Die Datenbank scheint in Ordnung zu sein. Es ist eine Rails-App und ich habe die pg-Edelsteine aktualisiert. Ich kann rennen rake db:create
und db:migrate
gut.
quelle
brew upgrade postgresql
brew postgresql-upgrade-database
brew upgrade postgresql && brew postgresql-upgrade-database
beheben zwar das Problem, aber meine lokalen Datenbanken wurden auf dem Weg gelöscht. Sichern Sie sie, wenn Sie wichtige Daten haben!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 verwende, aber meine Datenbank auf Heroku ist 9.4, also schien es nicht um den Versionspunktunterschied zu gehen arbeitete bis heute.)
Wenn Sie Postgres.app ( https://postgresapp.com/ ) auf einem Mac verwenden, stellen Sie sicher, dass Sie ausgeführt werden
v2.1.3
(zum jetzigen Zeitpunkt ist dies die neueste Version). Wenn Sie die Postgres.app aktualisieren, erhalten Sie die neueste Patch-Version von Postgres (was wahrscheinlich zu der derzeit auftretenden Nichtübereinstimmung führt - Heroku hat ein Upgrade für den neuesten Sicherheitspatch durchgeführt, und Ihr lokaler Computer verfügt möglicherweise nicht darüber).quelle
Seit gestern (03/01/2018) hatten wir auch Probleme beim Wiederherstellen eines Backups von Heroku unter PostgreSQL 9.5:
Das Upgrade unserer PostgreSQL-Version von 9.5.11 auf 9.5.12 hat das Problem behoben.
quelle
Wenn ich dieses Problem zum ersten Mal hatte, habe ich die Heroku-Datenbank wie folgt wiederhergestellt:
quelle
heroku pg:pull
. Dies ist jedoch keine geeignete Lösung, da Sie einen vorherigen Heroku-Speicherauszug immer noch nicht lokal wiederherstellen können. Außerdem wird beim Abrufen die Live-Datenbankressource verwendet.Wenn Sie versuchen, Postgresql in Ubuntu ohne Erfolg zu aktualisieren (wie oben von Johan kommentiert), verwenden Sie das PostgreSQL-Apt-Repository, wie in den offiziellen PostgreSQL-Download-Anweisungen angegeben: https://www.postgresql.org/download/linux/ubuntu /.
quelle
Das Update für mich beinhaltete sowohl die Aktualisierung meiner Postgres.app als auch die Aktualisierung meiner lokalen Homebrew PostgreSQL.
Aktualisiere meine Postgres.app über Canuks Antwort:
Aktualisiere mein lokales Homebrew PostgreSQL über den Kommentar von gerry3 zur akzeptierten Antwort:
brew upgrade postgresql
brew postgresql-upgrade-database
quelle
Hatte dieses Problem unter Windows mit pgAdmin 3.
Ein Upgrade von pgAdmin 3 auf pgAdmin 4 löste das Problem für mich.
quelle
pg_restore
erfolgreich ausgeführt werden.Ich empfehle nicht, Ihre Datenbank lokal auf eine neue Hauptversion zu aktualisieren (wenden Sie Sicherheitspatches an), nur 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 haben, wie von Diego erwähnt. 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 sind, beachten Sie, dass das pikante Repo von PostgreSQL nicht über die aktualisierten Clients verfügt, die Sie benötigen. Sie sollten stattdessen das xeniale Postgres-Repo verwenden.
quelle
Unable to locate package postgresql-client-10
wenn ich das macheHier ist, wie ich das Problem unter Ubuntu (16.04 LTS) gelöst habe, wo pg_restore / pg_dump mir eine ältere Version von psql gab
Das Problem ist, dass ich mehrere pg-Versionen installiert habe und pg_restore auf die frühere Version zeigte
Das Update besteht darin, eine ~ / .postgresqlrc-Datei zu erstellen, die auf die richtige Version verweist
Sobald dies erledigt ist, zeigt pg_restore auf die richtige Version und der Befehl wird ausgeführt
Details hier angegeben: /server/610777/wrong-version-of-pg-dump-on-ubuntu
quelle
Ich bin auf dieses Problem bei pgadmin III gestoßen und konnte es durch Wechseln des Speicherorts der Binärdateien beheben:
Menü Datei> Optionen> Binäre Pfade, dann wurde "PG bin path" in postgresql / 9.x / bin anstelle von ProgramFiles / pgadmin geändert. Die Wiederherstellung funktionierte danach einwandfrei.
quelle
Sie verwenden eine alte Version der Binärdatei pg_restore, die das Wiederherstellen der bereitgestellten Speicherauszugsdatei nicht unterstützt. Stellen Sie sicher, dass Sie die neueste Postgres-Version verwenden, die höher als die folgende Version sein muss: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 und 9.3.22).
Sie können die von Ihnen verwendete pg_restore-Version überprüfen, indem Sie pg_restore --version ausführen.
Wenn Sie ein Tool eines Drittanbieters wie PgAdmin verwenden, um die bereitgestellte Speicherauszugsdatei wiederherzustellen, ist die Wiederherstellung möglicherweise nicht erfolgreich, selbst 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.
quelle
Ich habe den gleichen Fehler festgestellt. Ich habe lokal auf postgresql 10.3 aktualisiert, und das hat das Problem für mich behoben.
quelle
Für Windows:
Öffnen Sie die Eingabeaufforderung (
cmd
), gehen Sie zum SpeicherortC:\Program Files\PostgreSQL\9.6\bin
und führen Sie die folgenden Befehle aus:Hoffe es wird dir helfen
quelle
Ich bin vor 10 Minuten in derselben Ausgabe gelaufen und habe 2005 von diesem Thread erfahren: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com
Grundsätzlich sagt der Typ, dass die Dump-Datei beschädigt ist.
quelle