PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So aktualisieren Sie pg_restore im Docker-Postgres-Image 10.3 auf 10.5

Wenn ich Sie richtig verstehe, möchten Sie einen mit 10.5 erstellten Speicherauszug eines benutzerdefinierten Formats in einer 10.3-Datenbank wiederherstellen.

Das ist nicht möglich, wenn sich das Archivformat zwischen 10.3 und 10.5 geändert hat.

Als Problemumgehung könnten Sie einen Dump im „einfachen Format“ verwenden (Option --format=plain ), die keine „Archivversion“ hat. Aber alle Probleme während der Wiederherstellung müssen Sie lösen, da ein Downgrade von PostgreSQL nicht unterstützt wird.

Sie sollten für Entwicklung und Produktion immer dieselbe Version verwenden und immer das neueste Minor-Release (derzeit 10.13) verwenden. Alles andere schreit nach Ärger.

  1. Backup als Klartext wie folgt:Warnung! Die Datei wird riesig. Etwa 17x mehr als das reguläre benutzerdefinierte Format. Meine typischen 90 MB sind jetzt 1,75 GB
  2. Kopieren Sie die Sicherungsdatei in den Postgres-Container docker cp ~/path/to/dump/in-host-system/2020-07-08-1.dump <name_of_postgres_container>:/backups
  3. gehen Sie zur Bash Ihres Postgres-Containers docker exec -it <name_of_postgres_container> bash
  4. innerhalb der Bash des Postgres-Containers:psql -U username -d dbname < backups/2020-07-08-1.dump

Das wird funktionieren