मैं जो कुछ भी जानता हूं, उसके लिए 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
. में स्थापित होते हैं डिफ़ॉल्ट रूप से। मैं हर एप्लिकेशन के लिए एक समर्पित स्कीमा का उपयोग करना पसंद करता हूं। रखरखाव को आसान बनाता है - जिसमें बैकअप और अनुमति देना शामिल है।