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опцією в pg_dump, ви можете пропускати ролі та ACL лише в pg_restore. Ви також можете редагувати каталог, --listякщо вам потрібні додаткові деталі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.