postgres - pg_dump y pg_restore sin roles

11

Estoy tratando de restaurar un volcado sin tener los roles apropiados en la base de datos receptora.

Como se ha mencionado aquí , sino también aquí , es necesario tener la --no-ownercomo una opción, ya sea en pg_dumpo pg_restoreo ambos

He usado la siguiente línea de comando para crear mi volcado

"C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******[email protected]:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar

La línea de restauración es la siguiente.

"C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password  --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar"

Como puede ver, ambos tienen la --no-owneropción, pero finalmente, tengo el siguiente error

ingrese la descripción de la imagen aquí

Lo que me molesta terriblemente es el registro a continuación

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 2633 ; 0 0 ACL adm avo******
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  role « avo****** » does not exist

¿Por qué dice que necesita un rol incluso si --no-ownerse especificó?

¿Me he perdido algo?

Anexo: Estoy corriendo en Postgres 9.3

Salud

Andy K
fuente

Respuestas:

13

El error ocurre cuando se pg_restoreconfiguran las ACL: puede usar --no-aclpara evitar GRANTcomandos.

Con la -Ftopción en pg_dump, puede omitir roles y ACL solo en pg_restore. También puede editar el catálogo con --listsi necesita más detalles.

slardiere
fuente