मेरे पास एक postgresql डीबी सर्वर है जिसमें इसमें एकाधिक डेटाबेस हैं। एक बनाएँ डाटाबेस बयान सहित - -CREATE DATABASE कमांड को शामिल करने के लिए pg_dump -s कैसे प्राप्त करें?
postgres=# \list
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+----------+-----------+---------+-------+-----------------------
test1 | postgres | UTF8 | C | C |
test2 | postgres | SQL_ASCII | C | C |
test3 | postgres | SQL_ASCII | C | C |
test4 | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | postgres=CTc/postgres+
| | | | | =c/postgres
(6 rows)
मैं एक डंप फ़ाइल कि स्कीमा शामिल बनाने के लिए कोई तरीका होना चाहिए मैं डंप करने के लिए कोशिश कर रहा हूँ डेटाबेस के लिए।
अब तक, मैं समझ गए होंगे कि:
pg_dump -s -U postgres -d test1 > test1_only.sql
सिर्फ test1 डेटाबेस के लिए स्कीमा निर्माण करेंगे, लेकिन इसे बनाने के डेटाबेस आदेश शामिल नहीं है।
pg_dumpall -s -U postgres > /schema_alldatabases.sql
सभी डेटाबेस के लिए स्कीमा डंप हो जाएगा: एक ही रास्ता मैं प्रकट करने के लिए बनाएँ डेटाबेस आदेश प्राप्त करने में सक्षम था करने के लिए किया गया था। लेकिन इसके बाद सभी डेटाबेस के लिए सभी स्कीमा शामिल हैं। सर्वर पर जो मैं इस फ़ाइल को पुनर्स्थापित करने जा रहा हूं, मेरे पास पहले से test3 और test4 है ... और मैं उन्हें ओवरराइट नहीं करना चाहता, क्योंकि स्कीमा अलग हैं।
क्या कोई भी तरीका है pg_dump -s कमांड को CREATE DATABASE कमांड शामिल है? या, क्या मुझे बस pg_dumpall का उपयोग करना चाहिए और मैं जो बहाल करता हूं उसे नियंत्रित करता हूं? यदि हां, तो क्या आप मुझे दिखा सकते हैं कि मैं डंप फ़ाइल से test1 को कैसे पुनर्स्थापित कर सकता हूं?
धन्यवाद।