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

PostgreSql , SQL फ़ाइल को अलग करने के लिए स्कीमा ऑब्जेक्ट DDL निकालें

यदि आप क्लाइंट मशीन पर हैं, तो आप इसे SQL स्क्रिप्ट में डाल सकते हैं (उदा. Export_plpgsql.sql) :

\pset tuples_only on
\pset footer off
\set QUIET on
\pset format unaligned
\set QUIET off

SELECT '\echo ''* Export '||(CASE proKind WHEN 'f' THEN 'Function' ELSE 'Procedure' END)||' : '||proName||''''
       ||chr(10)||'\copy (SELECT pg_get_functiondef('||p.oid||')) TO '''||:'export_path'||'/'||upper(proName)
       ||(CASE proKind WHEN 'f' THEN '.fct' ELSE '.prc' END)||''' WITH CSV;' as export_routine
FROM pg_proc p
WHERE proNamespace = (SELECT oid FROM pg_namespace WHERE nspName = lower(:'schema_name'))
ORDER BY proName;

और इसे 2 तर्कों का उपयोग करके कॉल करें:schema_name और Export_path, उदाहरण के लिए:

psql -U my_ -d my_db -v schema_name=my_schema -v export_path=C:/temp/export_PG -f export_plpgsql.sql > C:\temp\export_plpgsql.gen.sql

यह आपके plpgsql रूटीन के लिए सभी एक्सपोर्ट कमांड वाली एक स्क्रिप्ट जेनरेट करेगा, उदा.

\copy (SELECT pg_get_functiondef(51296)) TO 'C:/temp/export_PG/my_procedure.prc' WITH CSV;

अंतिम चरण :जेनरेट की गई स्क्रिप्ट चलाएँ

psql -U my_ -d my_db -f C:\temp\export_plpgsql.gen.sql

यह प्रत्येक प्रक्रिया के लिए एक .prc फ़ाइल और प्रत्येक फ़ंक्शन के लिए एक .fct फ़ाइल उत्पन्न करेगा।एनबी:आपको स्क्रिप्ट को परिष्कृत करना पड़ सकता है क्योंकि आपके पास pg_proc दृश्य में अन्य प्रकार के फ़ंक्शन (proKind) हो सकते हैं।




  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 बिना समय क्षेत्र के कॉलम डेटा प्रकार को टाइमस्टैम्प में बदल देता है

  2. फाइलों में pgsql कमांड निष्पादित करने के लिए शेल स्क्रिप्ट

  3. WHERE क्लॉज का उपयोग करके स्टेटमेंट अपडेट करें जिसमें शून्य मान वाले कॉलम हों

  4. पोस्टग्रेएसक्यूएल ट्रांजैक्शन आइसोलेशन पढ़ें अनकम्मिटेड

  5. JDBC:क्या मैं एक मल्टीथ्रेडिंग ऐप में कनेक्शन साझा कर सकता हूं, और अच्छे लेनदेन का आनंद ले सकता हूं?