2010-12-16 12 views
9

मैं कमांड लाइन से एक पोस्टग्रेएसक्यूएल डेटाबेस बना रहा हूं (यानी psql का उपयोग कर)।psql- मुझे उम्मीद नहीं है कि आउटपुट फ़ाइल में डीबी प्रतिक्रिया कैसे आउटपुट करें)

मेरी SQL कथन में कुछ त्रुटियों कर रहे हैं और मैं पता लगाना चाहते हैं जहां त्रुटियों उत्पन्न कर रहे हैं (कई वस्तुएं स्क्रीन बफर को भरने के लिए - तो मैं thios दायर करने के लिए बचाने की जरूरत है) मैं सिर्फ कोशिश की है

सब कुछ के बारे में, -o विकल्प का उपयोग करने से, -एल विकल्प और टी का उपयोग करने से - मैं अभी भी उस जानकारी को कैप्चर नहीं कर सकता जो स्क्रीन पर पिछले स्क्रॉल करता है।

मैं इसे कैसे लॉग करूं?

  • psql यू -ओ dbcreate.log -f file.sql
  • psql यू एल dbcreate.log -f file.sql
  • :

    यह वही है मैं अब तक की कोशिश की है है

  • psql -U -a -f file.sql | tee dbcreate.log

इनमें से कोई भी फ़ाइल में लॉग इन होने वाले स्क्रीन पर डेटा चमकती नहीं है - मैं यह कैसे कर सकता हूं?

+0

क्या आपने 'pg_dump' की कोशिश की है? http://www.cyberciti.biz/tips/tag/pg-dump-command – sje397

+0

'-U' उपयोगकर्ता नाम निर्दिष्ट करने के लिए है, यह आपके कमांड लाइन पर कौन सा उद्देश्य प्रदान करता है? –

उत्तर

11

आपको stderr को पुनर्निर्देशित करने की आवश्यकता है। Un * x और लिनक्स पर:

psql ... 2>error.log 

या दोनों stdout और stderr:

psql -v ON_ERROR_STOP=1 ... 

एक:

psql ... &>error.log 

दूसरी ओर अगर आप एक से त्रुटियों एक जांच करने के लिए की तरह है पर psql - here के साथ एसक्यूएल स्क्रिप्ट को निष्पादित करने के बारे में सहायक लेख।

+0

ऐसा लगता है कि मुझे क्या चाहिए। आपके अन्य प्रश्न (कमांड लाइन पर -यू विकल्प) के बारे में - क्या कोई तरीका है जहां मैं इन आदेशों को चला सकता हूं (एक बैश स्क्रिप्ट से कहें), पूरी तरह से स्वचालित - यानी बिना पासवर्ड के मुझे संकेत दिया? – skyeagle

+0

बहुत अच्छा लेख बीटीडब्ल्यू। मैंने किताब को स्वादिष्ट में चिह्नित किया है! – skyeagle

+1

[.pgpass] का उपयोग करें (http://www.postgresql.org/docs/current/static/libpq-pgpass.html)। –

संबंधित मुद्दे