J'essaie de restaurer un vidage sans avoir les rôles appropriés sur la base de données réceptrice.
Comme mentionné ici , mais aussi ici , vous devez avoir l' --no-owner
en option, que ce soit dans pg_dump
ou pg_restore
ou les deux
J'ai utilisé la ligne de commande suivante pour créer mon vidage
"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 ligne de restauration est comme suit
"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"
Comme vous pouvez le voir, les deux ont l' --no-owner
option mais finalement, j'ai l'erreur ci-dessous
Ce qui me dérange le plus est le journal ci-dessous
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
Pourquoi dit-il qu'il a besoin d'un rôle même si cela a --no-owner
été spécifié?
Ai-je oublié quelque chose?
Addendum: je cours sur Postgres 9.3
À votre santé
la source