Ich habe mit diesem Befehl eine Sicherung in einer Datenbank auf einem anderen Server durchgeführt, die eine andere Rolle hat als ich brauche:
pg_dump -Fc db_name -f db_name.dump
Dann habe ich das Backup auf einen anderen Server kopiert, auf dem ich die Datenbank wiederherstellen muss, aber es gibt keinen solchen Eigentümer, der für diese Datenbank verwendet wurde. Angenommen, die Datenbank hat einen Eigentümer owner1
, aber auf einem anderen Server habe ich nur einen owner2
und ich muss diese Datenbank wiederherstellen und den Eigentümer ändern.
Was ich beim Wiederherstellen auf einem anderen Server getan habe:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Aber wenn die Wiederherstellung ausgeführt wird, erhalte ich folgende Fehler:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Wie kann ich es angeben, damit es den Besitzer wechselt? Oder ist es unmöglich?
--no-owner
wie in der akzeptierten Antwort vorgeschlagen, benötigen Sie möglicherweise auch--no-privileges
. Siehe diese Antwort