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

PostgreSQL डेटाबेस को डंप करते समय फ़ंक्शन परिभाषाओं को छोड़ दें

मैं जो कुछ भी जानता हूं, उसके लिए pg_dump और pg_dumpall ऐसे किसी प्रतिबंध का समर्थन नहीं करते।

आप कर सकते थे अपने सभी कार्यों को एक समर्पित स्कीमा में ले जाएं जिसे आप इस तरह डंप से बाहर कर सकते हैं:

pg_dump mydb -N function_schema > mydump.sql

यदि आप उस मार्ग पर जाते हैं, तो आप कार्यों को किसी अन्य स्कीमा में माइग्रेट कर सकते हैं इस तरह:

ALTER FUNCTION myfunc() SET SCHEMA function_schema;

इस मामले में मैं search_path . को भी अनुकूलित करूंगा में postgresql.conf (और संभवतः डेटाबेस और भूमिकाओं के लिए डिफ़ॉल्ट में)

SET search_path = public,function_schema [,more schemas]

एक विकल्प . के रूप में , आप कार्यों को उनके डिफ़ॉल्ट स्कीमा public . में छोड़ सकते हैं और किसी अन्य चीज़ के लिए उस स्कीमा का उपयोग न करें। अपनी वस्तुओं को एक या अधिक अलग-अलग स्कीमा में रखें। इससे PostGis को अपग्रेड करना आसान हो जाएगा।

नहीं . करना एक अच्छा विचार हो सकता है public का उपयोग करें आपकी वस्तुओं के लिए स्कीमा। मैं आमतौर पर इसे PostGis या अन्य एक्सटेंशन के लिए आरक्षित करता हूं जो public . में स्थापित होते हैं डिफ़ॉल्ट रूप से। मैं हर एप्लिकेशन के लिए एक समर्पित स्कीमा का उपयोग करना पसंद करता हूं। रखरखाव को आसान बनाता है - जिसमें बैकअप और अनुमति देना शामिल है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) कैसे करें?

  2. अद्यतन विवरण में विंडो फ़ंक्शन का उपयोग करना

  3. Php json आउटपुट से लाइनब्रेक हटाना

  4. प्रत्येक ग्रुप बाय ग्रुप में पहली पंक्ति का चयन करें?

  5. psql:FATAL:भूमिका पोस्टग्रेज मौजूद नहीं है (-h लोकलहोस्ट विकल्प के साथ)