Отключить пейджер для интерактивного вывода PSQL
Мы перешли с PostgreSQL 8.3 на 9.0. Возможно, это новая функция или, возможно, просто изменение конфигурации, но теперь, когда вывод команд (например, \d tablename
) превышает видимое вертикальное пространство, psql, похоже, передает вывод через нечто подобное less
, Я не мог найти способ отключить это поведение. Любой совет? Благодарю.
PS Я прокручиваю буфер с помощью PuTTY Shift+PgUp/PgDn
так что мне не нужно psql пейджинга. Плюс, когда я нажимаю q
в подкачке psql его вывод полностью исчезает с экрана (как после запуска less
в bash), что неправильно с точки зрения общих случаев использования.
4 ответа
Для этого есть документация.
Из раздела \pset руководства psql:
пейджер
Управляет использованием пейджерной программы для запроса и вывода справки psql. Если установлена переменная среды PAGER, выходные данные передаются в указанную программу. В противном случае используется зависящее от платформы значение по умолчанию (например, more).
Когда опция пейджера отключена, программа пейджера не используется. Когда опция пейджера включена, пейджер используется там, где это необходимо, т. Е. Когда выход выводится на терминал и не помещается на экране. Опция пейджер также может быть установлена на всегда, что заставляет пейджер использоваться для всех выходных данных терминала независимо от того, помещается ли он на экране. \pset pager без значения включает и выключает пейджер.
Выключить пейджер при использовании psql
в оболочке:
psql -P pager=off ...
Вы также можете экспортировать пустой PAGER
переменная окружения, поэтому вам не нужно добавлять опцию к каждому выражению. Он останется установленным, пока вы не закроете текущую оболочку.
export PAGER=
psql ...
Наконец, обходной путь, который может быть легче запомнить: направьте вывод через cat
, который отключит пейджер по умолчанию
psql ... | cat
Попробуйте переключатель:
database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.
Добавьте код ниже в ~/.psqlrc, чтобы сохранить поведение
\pset пейджер выключен
В итоге лучше всего установить переменную окружения для пейджера, например:
PAGER='less -X' psql
или установить его один раз
export PAGER='less -X'
тогда беги
psql