Hallo zusammen,
ich bin eben dabei, ein Backup/Restore per Code zu schreiben. Ich stolpere aber noch darüber, dass die Restore-Funktion meine Datenbank nicht korrekt wiederherstellt. Ich denke, dass ich noch ein Verständnisproblem habe. Ich benutze die “pg_dump” sowie “pg_restore” Programme.
Das Backup mache ich so:
“C:\Program Files\PostgreSQL\13\bin\pg_dump.exe” -h localhost -p 5432 -U postgres -F c -f “C:<Pfadangabe><Dateiname>.bak”
Soweit klappt das ganz gut, im angegebenen Ordner entsteht eine .bak Datei.
Nun kommt das Restore:
“C:\Program Files\PostgreSQL\13\bin\pg_restore.exe” -h localhost -p 5432 -U postgres -C -c -d “” “<Dateiname>.bak”
Das Restore mündet in jeder Menge Fehler und sagt, dass die Relationen bereits vorhanden wären. Im Endergebnis bleibt die Datenbank unverändert. Ich war irgendwie der Meinung, dass die Optionen -C -c genau dafür da wären, die vorhandene Datenbank aufzuräumen. Im PG-Admin passiert das gleiche. Dort kann man ja in den Restore-Optionen wählen “Include CREATE Database” sowie “clean before restore”. Das ändert gar nix, die bestehende Datenbank wird nicht überschrieben.
Was mache ich hier also noch falsch?
Viele Grüße, Karsten.