受信データベースで適切な役割を持たずにダンプを復元しようとしています。
ここ だけでなく ここ も述べたように、--no-owner
オプションとして、pg_dump
またはpg_restore
または両方
次のコマンドラインを使用してダンプを作成しました
"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
復元線は以下の通り
"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で実行しています
乾杯
このエラーは、pg_restore
がACLを設定したときに発生します。--no-acl
を使用して、GRANT
コマンドを回避できます。
-Ft
のpg_dump
オプションを使用すると、pg_restore
でのみロールとACLをスキップできます。詳細が必要な場合は、--list
を使用してカタログを編集することもできます。