Назад | Перейти на главную страницу

Отключить пейджер для интерактивного вывода psql

Мы перешли с PostgreSQL 8.3 на 9.0. Возможно, это новая функция или, возможно, просто изменение конфигурации, но теперь при выводе команд (например, \d tablename) превышает видимое вертикальное пространство, psql, похоже, передает вывод через что-то похожее на less. Я не мог найти способ отключить это поведение. Любой совет? Спасибо.

P.S. Я прокручиваю буфер с помощью PuTTY Shift+PgUp/PgDn поэтому мне не нужна подкачка psql. Плюс, когда я нажимаю q в подкачке psql его вывод полностью исчезает с экрана (так же, как после запуска less в bash), что неверно с точки зрения общих вариантов использования.

Для этого есть документация.

Из раздела \ pset файла psql руководство:

пейджер

Управляет использованием программы-пейджера для запросов и вывода справки psql. Если установлена ​​переменная среды PAGER, вывод передается в указанную программу. В противном случае используется зависящее от платформы значение по умолчанию (например, more).

Когда опция пейджера выключена, программа пейджера не используется. Когда опция пейджера включена, пейджер используется тогда, когда это необходимо, т.е. когда вывод выводится на терминал и не помещается на экране. Параметр пейджера также может быть установлен на всегда, в результате чего пейджер будет использоваться для всего вывода терминала, независимо от того, умещается ли он на экране. \ pset pager без значения включает и выключает использование пейджера.

Попробуйте переключатель:

database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.

Выключите пейджер с помощью

\pset pager off

добавьте ниже код в ~ / .psqlrc, чтобы сохранить поведение

\ pset пейджер выключен

Чтобы выключить пейджер при использовании psql в оболочке:

psql -P pager=off ...

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

export PAGER=
psql ...

Наконец, обходной путь, который может быть проще запомнить: передать вывод через cat, что отключит пейджер по умолчанию

psql ... | cat

В итоге лучше всего установить переменную среды для пейджера, например

PAGER='less -X' psql

или установить один раз

export PAGER='less -X'

затем беги

psql