postgres - pg_dump и pg_restore без ролей

12

Я пытаюсь восстановить дамп, не имея соответствующих ролей в принимающей базе данных.

Как уже упоминалось здесь , но и здесь , вы должны иметь в --no-ownerкачестве опции, либо в pg_dumpили pg_restoreили оба

Я использовал следующую командную строку, чтобы создать свой дамп

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

Линия восстановления следующая

"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"

Как видите, у обоих есть --no-ownerвозможность, но в итоге у меня ошибка ниже

введите описание изображения здесь

Что меня ужасно мучает, так это журнал ниже

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

Почему говорится, что ему нужна роль, даже если она --no-ownerбыла указана?

Я что-то пропустил?

Приложение: я работаю на Postgres 9.3

ура

Энди К
источник

Ответы:

14

Ошибка возникает при pg_restoreустановке ACL: вы можете использовать --no-aclдля предотвращения GRANTкоманд.

С помощью -Ftопции in pg_dumpвы можете пропускать роли и ACL только в pg_restore. Вы также можете редактировать каталог, --listесли вам нужно больше деталей.

slardiere
источник