我正在尝试在不具有接收数据库上适当角色的情况下还原转储。
如前所述这里也是在这里,你需要有--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上运行
干杯