So erstellen Sie eine Datenbank bei der Wiederherstellung

So erstellen Sie eine Datenbank bei der Wiederherstellung

Ich möchte, dass pg_restore eine Datenbank vor der Wiederherstellung mit Postgres 12 unter Debian 10 erstellt

Ich habe es versucht

PG_COLOR=auto
PGHOST=localhost
PGPASSWORD=mypass
PGUSER=postgres
export PGHOST  PGPASSWORD PG_COLOR PGUSER
pg_restore --clean --create --if-exists --dbname=mydb  --jobs=4 --verbose "mydb.backup"

aber bekam Fehler

pg_restore: Verbindung zur Datenbank wird zum Wiederherstellen hergestellt pg_restore: Fehler: Verbindung zur Datenbank „mydb“ fehlgeschlagen: SCHWERWIEGEND: Datenbank „mydb“ existiert nicht

Wie erstelle ich eine Datenbank vor der Wiederherstellung?

Verwendung von Postgres 12 unter Debian 10

Antwort1

Der pg_restoreDokumentationerklärt diesen Fehler:

-C --erstellen

Erstellen Sie die Datenbank, bevor Sie sie wiederherstellen. Wenn auch --clean angegeben ist, löschen Sie die Zieldatenbank und erstellen Sie sie neu, bevor Sie eine Verbindung mit ihr herstellen.

Mit --create stellt pg_restore auch den Kommentar der Datenbank (sofern vorhanden) und alle Konfigurationsvariableneinstellungen wieder her, die spezifisch für diese Datenbank sind, d. h. alle ALTER DATABASE ... SET ...- und ALTER ROLE ... IN DATABASE ... SET ...-Befehle, die diese Datenbank erwähnen. Die Zugriffsrechte für die Datenbank selbst werden ebenfalls wiederhergestellt, sofern nicht --no-acl angegeben ist.

Wenn diese Option verwendet wird,Die mit -d benannte Datenbank wird nur zum Ausgeben der anfänglichen Befehle DROP DATABASE und CREATE DATABASE verwendet.. Alle Daten werden in der Datenbank mit dem Namen wiederhergestellt, der im Archiv angezeigt wird.

Sie müssen eine bereits vorhandene Datenbank -dbeispielsweise mit -d postgres oder übergeben -d template1. Beachten Sie auch, dass Ihr Backup den Befehl enthalten sollte CREATE DATABASE, dessen Vorhandensein von den mit verwendeten Argumenten abhängt pg_dump.

verwandte Informationen