2010-08-20 14 views
43

Come posso impedire a psql (client PostgreSQL) di emettere notifiche? per esempio.disabilita AVVISI in uscita psql

psql: schema/auth.sql: 20: "utenti" CREATE TABLE KEY/PRIMARIA creerà implicita indice "users_pkey" per la tavola

A mio parere un programma dovrebbe essere in silenzio a meno che: AVVISO ha un errore, o qualche altra ragione per produrre qualcosa.

risposta

49
SET client_min_messages TO WARNING; 

That potrebbe essere impostato solo per la sessione o reso persistente con ALTER ROLE o ALTER DATABASE.

Oppure è possibile inserirlo nel numero ".psqlrc".

+3

Questo può anche essere cambiato in postgresql.conf –

+0

... O solo dopo 'connect' usando un comando come' do' o 'esegui 'tramite qualsiasi interfaccia DBI. –

13

Utilizzare --quiet all'avvio di psql.

Un avviso non è inutile, ma questo è il mio punto di vista.

+2

interessante ... che zittisce tutte le cose come 'CREATE table' ma non il' NOTICE's' non sono sicuro che penso davvero tutti loro sono inutili ... ma ho un po 'di credenza (e penso di aver letto in uno di quelli che devono leggere libri di C o Unix) che i programmi dovrebbero essere tranquilli a meno che non abbiano un problema o tu dica loro di non essere. così --quiet dovrebbe essere il default e ci dovrebbe essere un --verbose (forse con livelli personalizzabili) – xenoterracide

43

Probabilmente la spiegazione più completa è in Peter Eisentrauts blog entry here

vorrei incoraggiare fortemente che il blog originale essere studiato e digerito, ma la raccomandazione finale è qualcosa di simile:

PGOPTIONS='--client-min-messages=warning' psql -X -q -a -1 -v ON_ERROR_STOP=1 --pset pager=off -d mydb -f script.sql 
+1

Questo post del blog è molto informativo. Grazie per averlo condiviso! – NagyI

+0

Grazie per aver condiviso questo post, è stato estremamente utile. – Steph

+2

Generalmente disapprovato rispondere con un semplice link, ma sono d'accordo che questo è stato un post molto informativo. Si prega di prendere in considerazione l'estrazione di alcuni dei punti chiave e di riassumerli nella risposta, insieme al collegamento. –

0

Può essere impostato in il file globale postgresql.conf con la modifica del parametro client_min_messages.

Esempio:

client_min_messages = warning 
+0

In realtà questa risposta è la stessa di @Gavin pubblicata con la parte pertinente. –