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

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

सबसे पहले, नहीं करें मिक्स psql मेटा-कमांड और SQL आदेश। ये कमांड के अलग सेट हैं। उन्हें संयोजित करने के लिए तरकीबें हैं (psql मेटा-कमांड का उपयोग करके \o और \\ और पाइपिंग स्ट्रिंग्स को psql शेल में), लेकिन यह जल्दी भ्रमित हो जाता है।

  • अपनी फ़ाइलों में केवल SQL कमांड शामिल करें।
  • CREATE DATABASE . शामिल न करें एसक्यूएल फाइलों में बयान। डीबी अलग से बनाएं, आपके पास एकाधिक है फ़ाइलें जिन्हें आप उसी टेम्पलेट डीबी में निष्पादित करना चाहते हैं।

मानते हैं आप OS उपयोगकर्ता के रूप में काम कर रहे हैं postgres और DB भूमिका का उपयोग करें postgres के रूप में (डिफ़ॉल्ट) सुपरयुसर को पोस्टग्रेज करता है, सभी डेटाबेस डिफ़ॉल्ट पोर्ट 5432 पर एक ही डीबी क्लस्टर में होते हैं और भूमिका postgres होती है IDENT . के कारण पासवर्ड रहित पहुंच है pg_hba.conf . में सेटिंग - एक डिफ़ॉल्ट सेटअप।

psql postgres -c "CREATE DATABASE mytemplate1 WITH ENCODING 'UTF8'
                  TEMPLATE template0"

मैंने नए टेम्पलेट डेटाबेस को डिफ़ॉल्ट सिस्टम टेम्पलेट डेटाबेस template0 . पर आधारित किया है . यहाँ मैनुअल में मूल बातें।

आपके प्रश्न

<ब्लॉककोट>

कैसे (...) फ़ाइल से pgsql cmds का एक सेट चलाएं

कोशिश करें:

psql mytemplate1 -f file

निर्देशिका में फ़ाइलों के बैच के लिए उदाहरण स्क्रिप्ट फ़ाइल:

#! /bin/sh

for file in /path/to/files/*; do
    psql mytemplate1 -f "$file"
done

कमांड विकल्प -f psql . बनाता है फ़ाइल में SQL कमांड निष्पादित करें।

<ब्लॉककोट>

कमांड लाइन पर मौजूदा टेम्पलेट के आधार पर डेटाबेस कैसे बनाएं

psql -c 'CREATE DATABASE my_db TEMPLATE mytemplate1'

कमांड विकल्प -c psql . बनाता है एकल SQL कमांड स्ट्रिंग निष्पादित करें। ; . द्वारा समाप्त कई कमांड हो सकते हैं - एक . में क्रियान्वित किया जाएगा लेन-देन और केवल अंतिम कमांड का परिणाम लौटा।
मैनुअल में psql कमांड विकल्पों के बारे में पढ़ें।

यदि आप कनेक्ट करने के लिए डेटाबेस प्रदान नहीं करते हैं, तो psql "postgres" नाम के डिफ़ॉल्ट रखरखाव डेटाबेस से कनेक्ट होगा। दूसरे उत्तर में यह अप्रासंगिक है कि हम किस डेटाबेस से जुड़ते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. परफेक्ट के साथ पोस्टग्रेएसक्यूएल ट्रेसिंग

  2. रेल:ActiveRecord::Base . के लिए कोई कनेक्शन पूल नहीं

  3. MySQL से PostgreSQL पर स्विच करना - टिप्स, ट्रिक्स और गोचास?

  4. एसक्यूएल की स्थिति पूर्णांक की जांच करने के लिए पसंद है?

  5. PostgreSQL द्वारा पेश किया गया JSONB की व्याख्या