Ошибка toc pg_restore - PullRequest
       18

Ошибка toc pg_restore

21 голосов
/ 23 марта 2012

Я использовал следующий синтаксис для pg_dump и восстановления

pg_dump eval --inserts -b -c --encoding UTF8 -Fc -f eval.sql.tar.gz -x -U postgres
createdb -T template0 test -U postgres
pg_restore -d test eval.sql.tar.gz -e -U postgres

Дамп прошел успешно, без ошибок, но восстановление приводит к некоторым ошибкам, я сбрасываю и восстанавливаю на одной машине с тем же пользователем и привилегиями ...

Я пробовал и с другими форматами, обычный, tar, сжатый все получает ту же ошибку ..

моя версия pg - 8.4.11, а версия psql - 8.4.11

я не уверен, что делает эти ошибки .. кто-нибудь может мне помочь

 pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4965; 0 138871 TABLE DATA ir_act_report_xml insigni
pg_restore: [archiver (db)] could not execute query: ERROR:  invalid input syntax for integer: "purchase.order"
LINE 1: ...st for Quotation', 'ir.actions.report.xml', NULL, 'purchase....
                                                             ^
    Command was: INSERT INTO ir_act_report_xml VALUES (350, 'Request for Quotation', 'ir.actions.report.xml', NULL, 'purchase.order', 'purcha...

Ответы [ 2 ]

25 голосов
/ 12 апреля 2012

это сделал трюк

pg_dump database_name -c -Ft -f file_name.tar 

pg_restore -d database_name -c file_name.tar

до этого я пытался восстановить без, включая -c (чистый)

, хотя -c включен в pg_dump, он не используется в pg_restore, если мы не скажем использовать ...

13 голосов
/ 15 марта 2018

Решение в моем случае:

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U username -d database_name dump_name.dump
...