2010-08-20 4 views
43

Как остановить psql (клиент PostgreSQL) от вывода уведомлений? напримеротключить NOTICES в выводах psql

PSQL: Схема/auth.sql: 20: ВНИМАНИЕ: CREATE TABLE/PRIMARY KEY создает неявный индекс "users_pkey" для таблицы "пользователи"

На мой взгляд, программа должна молчать, если у него есть ошибка или какая-то другая причина для вывода материала.

ответ

49
SET client_min_messages TO WARNING; 

That может быть установлен только для сеанса или сделаны постоянными с ALTER ROLE или ALTER DATABASE.

Или вы можете положить это в свой ".psqlrc".

+3

Это также можно изменить в postgresql.conf –

+0

... Или просто после 'connect', используя некоторую команду, например' do' или 'execute' через любой интерфейс DBI. –

13

Использование --quiet при запуске psql.

Извещение бесполезно, но это моя точка зрения.

+2

интересно ... что замолкает все такие вещи, как 'CREATE TABLE', но не' NOTICE's' Я не уверен, что я действительно думаю, что все из них бесполезны ... но у меня есть немного веры (и я думаю, что я читал это в одном из них, должен читать книги C или Unix), что программы должны быть спокойными, если у них нет проблемы или вы не говорите им, чтобы они не были. поэтому -quiet должен быть по умолчанию и должен быть --verbose (возможно, с настраиваемыми уровнями) – xenoterracide

43

Вероятно, наиболее полное объяснение о Петре Eisentrauts blog entry here

я настоятельно рекомендую, что оригинальный блог изучаться и переваривается, но окончательная рекомендация что-то вроде:

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

Это сообщение в блоге очень информативно. Спасибо, что поделились ею! – NagyI

+0

Спасибо, что поделились этим сообщением, это было очень полезно. – Steph

+2

Обычно на него нахмурился ответить только ссылкой, но я согласен с тем, что это было очень информативное сообщение в блоге. Пожалуйста, подумайте об извлечении некоторых ключевых моментов и суммировании их в своем ответе вместе со ссылкой. –

0

Он может быть установлен в глобальный файл postgresql.conf, а также с модификацией параметра client_min_messages.

Пример:

client_min_messages = warning 
+0

На самом деле этот ответ такой же, как @Gavin, размещенный только с соответствующей частью. –