मैं एक से दूसरे हार्ड ड्राइव से मेरी PostgreSQL डेटाबेस ले जाया गया का उपयोग करpg_dump और psql यू postgres db_name के साथ एक डेटाबेस बढ़ते <... "त्रुटि: संबंध" में परिणाम TABLE_NAME "मौजूद नहीं है"
pg_dump -U postgres db_name > db_name.dump
और फिर
psql -U postgres db_name < db_name.dump
मैंने दोनों उदाहरणों में डेटाबेस db_name को उसी तरह बनाया है।
"ERROR: relation "table1" does not exist"
क्वेरी है:
select count(0) from table1
मैं जानता हूँ कि मैं एक मिल गया है नया डेटाबेस जब मैं एक जेपीए क्वेरी (या एक JDBC क्वेरी) के साथ अपने जावा कार्यक्रम चलाने में मैं इस त्रुटि मिलती है कनेक्शन क्योंकि अगर मैं कनेक्शन पैरामीटर में पासवर्ड बदलता हूं तो मुझे एक त्रुटि मिलती है।
नए PostgresQL उदाहरण में किसी कारण से यह सोचता है कि तालिका 1 आयातित स्कीमा में मौजूद नहीं है।
अगर मैं
करने के लिए क्वेरीचयन गिनती (0) से myschema.table1
तो यह अनुमतियों के बारे में शिकायत बदलने के लिए:
"ERROR: permission denied for schema myschema"
क्यों अनुमतियाँ भिन्न होगा?
तालिका तालिका 1 myschema में मौजूद है क्योंकि मैं इसे pgAdmin टूल में देख सकता हूं। सभी पंक्तियों को नए PostgresQL उदाहरण में आयात किया गया था।
जब मैं जावा से एक क्वेरी करता हूं तो pg_dump और psql के संयोजन ने एक समस्या बनाई है।
इस समस्या को हल करने के लिए मुझे क्या करने की आवश्यकता है?
अग्रिम धन्यवाद।
मैं 8.3 से 8.4 तक बढ़ रहा हूं। मैं आपके अधिक व्यापक दृष्टिकोण का उपयोग करने के लिए अपनी बैकअप स्क्रिप्ट बदल दूंगा। जवाब के लिए धन्यवाद। –
मैं बड़े डेटाबेस के लिए pg_restore में verbose flag (-v) जोड़ दूंगा। 'pg_restore -a -v -d dbname -Fc full.dump' – green0range
यदि आप' pg_restore -a' पर जा रहे हैं तो स्कीमा को दो बार (सादे टेक्स्ट और संपीड़ित) में डंप करने का क्या मतलब है? उदाहरण के लिए, 'pg_dump -Fc -a -v -f data.dump' क्यों नहीं? या स्कीमा चरण को पूरी तरह से छोड़ दें, और केवल एक चरण में ग्लोबल्स और दूसरे में बाकी सब कुछ करें? – Air