2012-07-14 20 views
22

psql, -q/--quiet seçeneğine sahiptir (QUIET ortam değişkeni). pg_restore'un sessiz bir seçeneği yok. pg_restore'u gerçekleştirmenin herhangi bir yolu, yürütmekte olduğu SQL komutlarını açıkça göstermiyor mu?"psql --quiet" gibi bir "pg_restore --quiet" seçeneği var mı?

# 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

Neden çıkışı basit bir şekilde '/ dev/nul' olarak yönlendirmiyorsunuz? –

+0

Çıktıyı herhangi bir potansiyel hata mesajını kaybetmek istemediğim için/dev/null adresine yönlendirmek istemiyorum. Muhtemelen stderr'e giderler, bu yüzden stdout'u/dev/null'a yönlendirebilirim, ama daha iyi bir şey fikrini beğenirim. Bazı bilgi çıktılarını görmeyi umursamıyorum, ancak her sql komutu değil. –

cevap

41

soru pg_restore bu SQL komutlarını yürütürken olduğunu ima etmek gibi görünüyor ve çıktıda onları görmek istemem. Ama onları çıkarmak sadece yapılması gereken şey. Bir veritabanına bağlanmadan veya bağlanmadan iki çalışma modu vardır. SQL

$ pg_restore --cluster 8.4/mycluster mycluster.dump

daha sonra tek amacı çıkışına bir dizi: Söz gösterildiği gibi bir veritabanı (-d seçeneği) olmadan denir zaman veritabanını geri yüklemek için bir SQL yorumlayıcısına beslenmesi gereken düz metin komutları. Bu SQL komutları, herhangi bir ayrıntı kavramı olmadan tutarlı bir küme oluştururlar ve tarafından pg_restore tarafından çalıştırılmazlar. Genellikle daha sonra yürütmek için bir dosyaya yönlendirilir veya anında yürütme için psql'a aktarılır.

+4

Aha, şimdi her şey açık! Yanlışlıkla, -d olmayan pg_restore'un veritabanını kendim için otomatik olarak oluşturacağını varsayıyordum. Ama açıklamanızla ve pg_restore (1) man sayfasını okuyarak şimdi açık. Yanlış bir varsayım olarak benim sorum, bu yüzden onu gelecekteki okuyucular için daha net hale getirmek için nasıl yeniden düşüneceğimi düşüneceğim. Teşekkürler @ Daniel_Vérité! –

İlgili konular