2012-03-23 22 views
14

stavo usando la seguente sintassi per pg_dump e ripristinarepg_restore errore 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 discarica era successo senza errori, ma ripristinare fa un qualche errore, io sono di dumping e il ripristino in stessa macchina con lo stesso utente e privilegio tutto ...

ho provato con altri formati anche, pianura, tar, compresso tutto ottiene lo stesso errore ..

la mia versione del pg è 8.4.11 e la versione 8.4.11 è psql

Non sono sicuro che cosa rende questi errori .. qualcuno mi può aiutare

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

Sembra si dump è uno script SQL che deve essere eseguito utilizzando psql, non pg_r estore –

risposta

18

questo ha fatto il trucco

pg_dump database_name -c -Ft -f file_name.tar 

pg_restore -d database_name -c file_name.tar 

prima di questo ho cercato di ripristinare con fuori tra cui -c (pulito)

anche se -c è incluso nel pgjdump non viene utilizzato in pg_restore a meno che non diciamo di usare ...

+2

+1 per il flag '-c'. – Jonah

+4

L'uso del flag "clean" può causare anche molti problemi, poiché si lamenterà degli oggetti mancanti quando si utilizza un nuovo database. – cslotty