Zrobiłem kopię zapasową bazy danych na innym serwerze i ma inną rolę niż potrzebuję, za pomocą tego polecenia:
pg_dump -Fc db_name -f db_name.dump
Następnie skopiowałem kopię zapasową na inny serwer, na którym muszę przywrócić bazę danych, ale nie ma takiego właściciela, który byłby używany dla tej bazy danych. Powiedzmy, że baza danych ma właściciela owner1
, ale na innym serwerze mam tylko owner2
i muszę przywrócić tę bazę danych i zmienić właściciela.
Co zrobiłem na innym serwerze podczas przywracania:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Ale po uruchomieniu przywracania otrzymuję następujące błędy:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Jak mogę to określić, aby zmieniło właściciela? Czy to niemożliwe?
--no-owner
jak zasugerowano w zaakceptowanej odpowiedzi, możesz również potrzebować--no-privileges
. Zobacz tę odpowiedź