PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgres 9.4 से बड़े ऑब्जेक्ट डेटा को कैसे डंप करें, और फिर इसे Postgres8.x पर आयात करें?

समस्या यह है कि डंप pg_catalog.lowrite(integer, bytea) फ़ंक्शन का उपयोग करता है बड़ी वस्तु बनाने के लिए, और डिफ़ॉल्ट सिंटैक्स कैसे bytea PostgreSQL में शाब्दिक प्रतिनिधित्व 9.0 संस्करण के साथ बदल गया है।

पैरामीटर है bytea_output जिसे escape . पर सेट किया जा सकता है आउटपुट करने के लिए bytea पुराने प्रारूप में बाद के PostgreSQL संस्करणों के साथ। काश, pg_dump डंप बनाते समय उस पैरामीटर का सम्मान नहीं करता है, यह हमेशा "नया" hex का उपयोग करता है प्रारूप।

नतीजा यह है कि 9.0 या बाद के पोस्टग्रेएसक्यूएल संस्करण से बड़ी वस्तुओं वाले डंप को प्री-9.0 डेटाबेस में पुनर्स्थापित नहीं किया जा सकता है।

आपको इन बड़े ऑब्जेक्ट्स को किसी अन्य तरीके से स्थानांतरित करना होगा, शायद माइग्रेशन प्रोग्राम लिखकर।

आप (pgsql-hackers मेलिंग सूची पर) pg_dump के लिए एक विकल्प प्रस्तावित कर सकते हैं जो bytea_escape . सेट करने की अनुमति देता है डंप के लिए, लेकिन आपको प्रतिरोध का सामना करना पड़ सकता है, क्योंकि बाद के पोस्टग्रेएसक्यूएल संस्करण से पुराने संस्करण में डंप को पुनर्स्थापित करना समर्थित नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. R RPostgreSQL SSL के साथ दूरस्थ पोस्टग्रेज डेटाबेस से कनेक्ट करें

  2. पांडा में इष्टतम खंड आकार पैरामीटर।DataFrame.to_sql

  3. यदि PostgreSQL के लिए मौजूद नहीं है तो डेटाबेस बनाएं सिमुलेट करें?

  4. पोस्टग्रेएसक्यूएल से सीएसवी के रूप में लाइन फीड युक्त डेटा निर्यात करना

  5. MySQL से PostgreSQL तालिका रूपांतरण बनाएं - वर्णसेट और संयोजन