Hice una copia de seguridad en la base de datos en un servidor diferente y ese tiene un rol diferente al que necesito, con este comando:
pg_dump -Fc db_name -f db_name.dump
Luego copié la copia de seguridad en otro servidor donde necesito restaurar la base de datos, pero no existe tal propietario que se utilizó para esa base de datos. Digamos que la base de datos tiene propietario owner1
, pero en un servidor diferente solo tengo owner2
y necesito restaurar esa base de datos y cambiar de propietario.
Lo que hice en otro servidor al restaurar:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Pero cuando se ejecuta la restauración, obtengo estos errores:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
¿Cómo puedo especificarlo para que cambie de propietario? ¿O es imposible?
--no-owner
lo sugerido en la respuesta aceptada, es posible que también necesite--no-privileges
. Ver esta respuesta