postgres - pg_dump dan pg_restore tanpa peran


11

Saya mencoba memulihkan dump tanpa memiliki peran yang sesuai pada database penerima.

Seperti disebutkan di sini tetapi juga di sini , Anda perlu memiliki --no-ownersebagai opsi, baik di pg_dumpatau pg_restoreatau keduanya

Saya telah menggunakan baris perintah berikut untuk membuat dump saya

"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

Garis pemulihan adalah sebagai berikut

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

Seperti yang Anda lihat, keduanya memiliki --no-owneropsi tetapi akhirnya, saya memiliki kesalahan di bawah ini

masukkan deskripsi gambar di sini

Yang sangat mengganggu saya adalah log di bawah ini

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

Mengapa dikatakan perlu peran meski --no-ownersudah ditentukan?

Apakah saya melewatkan sesuatu?

Tambahan: Saya menjalankan Postgres 9.3

Bersulang

Jawaban:


13

Kesalahan terjadi ketika pg_restoremengatur ACL: Anda dapat menggunakan --no-acluntuk mencegah GRANTperintah.

Dengan -Ftopsi ini pg_dump, Anda dapat melewati peran dan ACL hanya di pg_restore. Anda juga dapat mengedit katalog dengan --listjika Anda membutuhkan detail lebih lanjut.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.