2012-12-04 22 views
10

मैं कमांड लाइन के माध्यम से अपने डेटाबेस 'mydatabase' को टेक्स्ट फ़ाइल 'mydatabase.sql' में डंप कर रहा हूं।Howto pg_restore

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" 

थास अच्छा चल रहा है। लेकिन कई कोशिशों के बाद मैं उन फ़ाइलों को डेटा के साथ डेटाबेस में वापस pg_restore नहीं कर सकता।
लेकिन अगर मैं इस डेटाबेस में सभी तालिकाओं को हटाने के साथ मैं यह कर सकते हैं:

psql -f "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" "postgres" 

यह सभी डेटा को पुनः के। समस्या यह है कि मैं VBNET/खोल के माध्यम से pgsl नहीं चला सकते हैं तो मैं नहीं बल्कि pg_restore.exe की आवश्यकता होगी है यह मेरा प्रयास है:

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql" 

... मैं कहाँ मिलता है संदेश:

सी : \ उपयोगकर्ता \ उपयोगकर्ता 1> "सी:/प्रोग्राम फ़ाइलें (x86) /PostgreSQL/9.1/bin/pg_restore.exe" -i -h लोकलहोस्ट -पी 5432 -U पोस्टग्रेर्स-डी "mydatabase" -v "सी: \ उपयोगकर्ता \ उपयोगकर्ता 1 \ डेस्कटॉप \ mydatabase.sql " अवैध बाइनरी" सी:/प्रोग्राम फ़ाइलें (x86) /PostgreSQL/9.1/bin/pg_restore.exe " pg_restore.exe: [archiver] इनपुट फ़ाइल एक प्रतीत नहीं होती है वैध संग्रह

पुनर्स्थापित करने का प्रयास करने से पहले मेरे पास सर्वर पर (डेटाबेस के बिना) डेटाबेस 'mydatabase' है। कृपया 'mydatabase.sql' के साथ काम कर रहे pg_restore को पाने में कोई मदद करें जिसे pg_dump के साथ डंप किया गया है और जिसमें स्पष्ट रूप से उचित डेटा है, इसलिए मैं इसे शुद्ध कमांड लाइन या VBNET/shell के माध्यम से उपयोग कर सकता हूं।

उत्तर

11

अपने pg_dump में, -F t ध्वज निर्दिष्ट करें। यह pg_dump को टैर प्रारूप में बैकअप बनाने के लिए बताता है, जो pg_restore के माध्यम से पुनर्स्थापित करने के लिए उपयुक्त है।

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose -F t --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" 
+0

मैं देखता हूं। वह काम है :) बहुत बहुत धन्यवाद! –