मैं कुछ टेबल्स को 9.5 बीटा 2 से 9.4.4 सर्वर पर डंप करने की कोशिश कर रहा हूं। मेरे द्वारा उपयोग की जा रही कमांड का रूप काफी मानक है:
pg_dump -t table dbname | psql -h hostname -d dbname
मैं पोस्टग्रेज उपयोगकर्ता का उपयोग कर रहा हूं, जो मुझे लगता है कि शायद आदर्श नहीं है, लेकिन ये दोनों देव डेटा प्रोसेसिंग बॉक्स हैं जो केवल मैं उपयोग करता हूं और यह उस त्रुटि के लिए प्रासंगिक है जो निम्नानुसार है। प्रारंभ में, मुझे त्रुटि मिली
त्रुटि: अपरिचित कॉन्फ़िगरेशन पैरामीटर "row_security"
जो अपेक्षित है क्योंकि यह फीचर 9.5 में नया है, और, हाँ, मुझे एहसास है कि यह अलग-अलग पोस्टग्रेज संस्करणों के बीच pg_dump के लिए उचित नहीं है, लेकिन, दुखद रूप से अपरिहार्य है, यह देखते हुए कि मैंने बहुत अस्पष्ट बग मारा है, और एक बड़ा कदम उठाने की आवश्यकता है स्थिर डेटा की मात्रा एक बार।
इसलिए, पंक्ति_ त्रुटि त्रुटि को दूर करने के लिए इस घृणित हैक का उपयोग करना, और पहली त्रुटि पर स्टॉप को चालू करना:
pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'|
psql -v ON_ERROR_STOP=1 -h hostname -d dbname
अब मुझे मिलता है:
ERROR: "pg_catalog.tablename" बनाने की अनुमति से इनकार किया गया है: सिस्टम कैटलॉग संशोधनों को वर्तमान में अस्वीकृत कर दिया गया है
हालांकि यह Postgres उपयोगकर्ता / भूमिका का उपयोग करने के लिए अवांछनीय हो सकता है, मेरी समझ यह है कि इस प्रकृति के कोई अनुमति मुद्दे नहीं होने चाहिए। मैं ध्यान में रखते हुए किसी भी सुझाव के लिए खुला हूं कि यह एक बंद ऑपरेशन है और ये डेटा प्रोसेसिंग देव बॉक्स हैं जो किसी भी जीवित सेवाओं से जुड़े नहीं हैं, इसलिए आदर्श कॉर्पोरेट डेटा एक्सेस नीतियों पर निर्भरता को प्राथमिकता दी जाती है। यह कहने के बाद, यह समझना अच्छा होगा कि इसे ठीक से कैसे किया जाए और भविष्य में इससे बचा जाए।