2012-02-24 12 views
8

मैं कंसोल उपकरण में PostgreSQL डेटाबेस में एक बड़ा तालिका (250MB) को बहाल करने की जरूरत है। मैं ps_dump या psql का उपयोग करके यह कैसे कर सकता हूं?कैसे से * एक PostgreSQL तालिका बहाल pg_dump या psql का उपयोग कर .sql?

+0

आप psql खोल – Kungi

उत्तर

18

बस psql साथ डेटाबेस से कनेक्ट और \i /path/to/filename.sql चलाते हैं।

8
psql --username yourusername --dbname yourdatabasename -f yourfile.sql 

स्पष्टीकरण here के रूप में। कॉन्फ़िगरेशन के आधार पर, आपका पासवर्ड पूछ सकता है।

यदि यह कोई अपने डेटाबेस के साथ एक नव स्थापित डेटाबेस इंजन अभी तक है, डेटाबेस नाम के लिए postgres का उपयोग करें और उपयोगकर्ता नाम हिस्सा (नई स्थापना सामान्य रूप से वर्तमान उपयोगकर्ता के लिए जो इसे स्थापित करने के लिए पूर्ण पहुँच प्रदान करनी चाहिए) को छोड़ देते हैं की कोशिश करो।

यदि आप अभी भी लॉगिन नहीं कर सकते हैं, तो अस्थायी रूप से pg_hba.conf संपादित करें जहां भी यह आपके इंस्टॉलेशन में हो और अस्थायी रूप से स्थानीयहोस्ट को विश्वसनीय पर सेट कर सके। फिर आप उपयोगकर्ता नाम के रूप में और डेटाबेस नाम के रूप में पोस्टग्रेज़ निर्दिष्ट कर सकते हैं।

जब किया pg_hba.conf परिवर्तनों को वापस करने के लिए मत भूलना।

2
psql dbname < /path/to/dump.sql 

तुम भी तेज़ी से अपने डंप संशोधित कर सकते हैं यदि आवश्यक:

sed 's/OWNER TO olduser/OWNER TO newuser/g' < /path/to/dump.sql | psql dbname 
+0

में \ h के साथ सभी आदेशों यह बेहद उपयोगी था के लिए मदद मिल सकती है। मुझे कुछ ऐसी चीज चाहिए जो एक स्क्रिप्ट से निष्पादित की जा सके। धन्यवाद! –

-1
psql -U postgres -d doctor_dev < /home/ravi/mydevelopment 
+0

यह एक उत्तर नहीं है। यह कोड केवल फाइल से पोस्टग्रेस्क्ल डेटाबेस में अज्ञात एसक्यूएल स्टेटमेंट भेजता है। –

+0

यह आदेश postgres backupdump पुनर्स्थापित कर देगा –