Давно уже хочу описать опыт работы с пейджером pspg для PostgreSQL. Но материала (в голове) набралось много, хотел сначала весь его засунуть в одну статью — но она (бы) получилась очень большой, поэтому всё откладывал и откладывал. Решил разбить на части. Сегодня — первая, чтобы начать.
Pspg — это unix-совместимый инструмент для постраничного просмотра данных, разработанный специально для Postgres-клиента psql, автор pspg — Павел Стехуле, независимый консультант и разработчик PostgreSQL.
Чуть подробнее про Павла можно почитать в интервью, которого у него брали в конце 2020 года, когда Павла назвали Postgresql Person of the Week. Если владеете чешским — можете почитать про него в чешской вики. И, конечно, можно посетить его блог (там на английском).
Впервые я услышал про pspg из одного из выпуска Postgres-вторника. Через некоторое время увидел что автор будет рассказывать о своём пейджере на PGConf.online 2021.
И рассказал — ссылка на запись доклада Павла: «Как использовать pspg».
В данной статье (и следующей) многое будет повторено из этой записи, с разными экспериментами.
Pspg доступен на github (там много полезного есть!). Еще про пейджер можно почитать в статьей в блоге автора.
Установка (для Ubuntu 20.04):
sudo apt install pspg
(я уже не помню, что именно я доустанавливал, так как использовал этот образ несколько раз, если каких-то библиотек не хватает — доустановите, чтобы работало).
Установка должна пройти за считанные секунды.
А теперь давайте проведем эксперимент. Выполните следующую команду:
man man
Если ничего не перенастроено, вы должны увидеть нечто следующее (нажмите q для выхода, в psql так же):
Тоже уже не помню, какой именно пейджер по умолчанию стоит (что-то типа more), сейчас не важно:
А теперь перенастроим пейджер на pspg следующим образом:
export PAGER='pspg'
И повторите:
man man
Всё заработало 🙂
А теперь попробуем добавить pspg в psql (подразумевается, что psql установлен). Откроем файл .psqlrc (который находится в домашнем каталоге текущего пользователя, более подробно — смотрите во втором занятии курса DBA1 от Postgres Professional), и добавим туда следующее:
\setenv PAGER 'pspg -s 7' \pset border 2
В данном случае устанавливаем в качестве пейджера pspg, ставим зеленую тему (-s 7) и размер границы ставим в два (border 2). Автор пишет, что это самый оптимальный размер границ. Перезапускаем подключение к терминалу и запускаем psq, выполняем команду:
\l ;
Должно получиться следующее:
Красиво? Мне нравится, именно этот параметр (зеленый) понравился. Есть и другие:
Themes
-
black & white
-
Midnight Commander like
-
FoxPro like
-
Pdmenu like
-
White theme
-
Mutt like
-
PCFand like
-
Green theme
-
Blue theme
-
Word Perfect like
-
Low contrast blue theme
-
Dark cyan/black mode
-
Paradox like
-
dBase IV retro style
-
dBase IV retro style (Magenta labels)
-
Red white theme
-
Simple theme
-
Solarized dark theme
-
Solarized light theme
-
Gruvbox light theme
-
Tao Light theme
-
FlatWhite theme
-
Relational pipes theme
Можете сами поэкспериментировать, устанавливая параметр -s.
А теперь посмотрим, что у нас находится в таблице pg_database:
SELECT * from pg_tables;
Тоже всё красиво (по моему мнению). И, очень важно, можно двигать содержимое таблицы вправо (с помощью клавиши вправо), и первая колонка (и заголовок) будут зафиксированы, т. е. не сдвинуться с места — это довольно таки хорошо, в больших таблицах. Автор об этом в видео и упоминает. И именно это (помимо внешнего вида) мне понравилось:
Иии — еще кучу всего полезного есть, но об этом расскажу в следующий раз. Надеюсь, было интересно 🙂
Leave a Reply