2012-03-23 1 views
14

j'utilisais la syntaxe suivante pour pg_dump et RESTOREpg_restore erreur toc

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 

la décharge était Successfull sans erreur, mais ramènerai fait une des erreurs, je suis le dumping et la restauration dans la même machine avec un même utilisateur et privilège ... tout

j'ai essayé avec d'autres formats aussi, plaine, goudron, comprimé tout obtient la même erreur ..

ma version de pg est 8.4.11 et la version psql est 8.4.11

Je ne sais pas ce qui fait ces erreurs .. quelqu'un peut me aider

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... 
+1

Semble vous videz est un script SQL qui doit être exécuté en utilisant psql, non pg_r estore –

Répondre

18

ce fait le tour

pg_dump database_name -c -Ft -f file_name.tar 

pg_restore -d database_name -c file_name.tar 

avant cela, je suis en train de restaurer avec des -c y compris (propre)

même si -c est inclus dans pg_dump il ne sert pas à pg_restore à moins que nous disons à utiliser ...

+2

+1 pour le drapeau '-c'. – Jonah

+4

L'utilisation du drapeau "clean" peut aussi causer beaucoup de problèmes, car il se plaindra des objets manquants lors de l'utilisation d'une nouvelle base de données. – cslotty