2012-07-14 14 views
22

psql में -q/--quiet विकल्प (पर्यावरण चर QUIET) है। pg_restore में कोई शांत विकल्प नहीं है। pg_restore बनाने के लिए कोई तरीका है क्या यह निष्पादित SQL आदेशों को वर्बोज़ली से नहीं दिखाता है?क्या "psql --quiet" जैसे "pg_restore --quiet" विकल्प है?

# e.g., here's the verbose output that I don't want to see: 
$ pg_restore --cluster 8.4/mycluster mycluster.dump 
---- PostgreSQL database dump 
-- 
SET statement_timeout = 0;SET client_encoding = 'UTF8'; 
SET standard_conforming_strings = off;SET check_function_bodies = false; 
... 
-- 
-- Name: data_src; Type: TABLE; Schema: public; Owner: postgres; Tablespace:-- 
CREATE TABLE data_src (
... 
+0

आप आउटपुट को '/ dev/nul' पर रीडायरेक्ट क्यों नहीं करते हैं? –

+0

मैं आउटपुट को/dev/null पर रीडायरेक्ट नहीं करना चाहता क्योंकि मैं कोई संभावित त्रुटि संदेश खोना नहीं चाहता हूं। वे शायद stderr पर जायेंगे, तो मैं सिर्फ stdout को/dev/null पर रीडायरेक्ट कर सकता हूं, लेकिन मुझे कुछ बेहतर विचार पसंद है। मुझे कुछ सूचनात्मक आउटपुट देखने में कोई फर्क नहीं पड़ता, लेकिन हर एसक्यूएल कमांड नहीं। –

उत्तर

41

सवाल सूचित करते हैं कि pg_restore इन एसक्यूएल आदेशों को क्रियान्वित कर रहा है लगता है और आप उन्हें उत्पादन में देखने के लिए नहीं करना चाहते। लेकिन उन्हें आउटपुट करना केवल यही करना है।

pg_restore में डेटाबेस से कनेक्ट किए बिना या बिना ऑपरेशन के दो तरीके हैं। यह एक डेटाबेस (-d विकल्प) के बिना कहा जाता है जब के रूप में सवाल में दिखाया गया है:

$ pg_restore --cluster 8.4/mycluster mycluster.dump

तो किसी SQL के सेट अपने एकमात्र उद्देश्य उत्पादन करने के लिए है सादा पाठ में आदेश जो डेटाबेस को पुनर्स्थापित करने के लिए SQL दुभाषिया को खिलाया जाना चाहिए। वे एसक्यूएल कमांड वर्बोजिटी की किसी भी अवधारणा के बिना एक सुसंगत सेट बनाते हैं, और वे pg_restore द्वारा निष्पादित नहीं किए गए हैं। उन्हें आम तौर पर बाद में निष्पादन के लिए फ़ाइल में रीडायरेक्ट किया जाता है या तत्काल निष्पादन के लिए psql में पाइप किया जाता है।

+4

आह, अब यह सब स्पष्ट है! मैं गलती से यह मान रहा था कि बिना डीडी, pg_restore स्वचालित रूप से मेरे लिए डेटाबेस बना देगा। लेकिन आपकी व्याख्या के साथ, और pg_restore (1) मैन पेज पढ़ने के साथ, अब यह स्पष्ट है। मेरा प्रश्न गलत धारणा के रूप में है, इसलिए मैं भविष्य के पाठकों के लिए इसे और स्पष्ट करने के लिए इसे पुन: पेश करने के बारे में सोचूंगा। धन्यवाद @ डैनियल_वेरेट! –