pspg. Часть 1

PostgreSQLДавно уже хочу описать опыт работы с пейджером 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 так же):

man man origin

Тоже уже не помню, какой именно пейджер по умолчанию стоит (что-то типа more), сейчас не важно:

А теперь перенастроим пейджер на pspg следующим образом:

export PAGER='pspg'

И повторите:

man man

man man pspg

Всё заработало 🙂

А теперь попробуем добавить pspg в psql (подразумевается, что psql установлен). Откроем файл .psqlrc (который находится в домашнем каталоге текущего пользователя, более подробно — смотрите во втором занятии курса DBA1 от Postgres Professional), и добавим туда следующее:

\setenv PAGER 'pspg -s 7'
\pset border 2

В данном случае устанавливаем в качестве пейджера pspg, ставим зеленую тему (-s 7) и размер границы ставим в два (border 2). Автор пишет, что это самый оптимальный размер границ. Перезапускаем подключение к терминалу и запускаем psq, выполняем команду:

\l ;

Должно получиться следующее:

pspg l

Красиво? Мне нравится, именно этот параметр (зеленый) понравился. Есть и другие:

Themes

  1. black & white

  2. Midnight Commander like

  3. FoxPro like

  4. Pdmenu like

  5. White theme

  6. Mutt like

  7. PCFand like

  8. Green theme

  9. Blue theme

  10. Word Perfect like

  11. Low contrast blue theme

  12. Dark cyan/black mode

  13. Paradox like

  14. dBase IV retro style

  15. dBase IV retro style (Magenta labels)

  16. Red white theme

  17. Simple theme

  18. Solarized dark theme

  19. Solarized light theme

  20. Gruvbox light theme

  21. Tao Light theme

  22. FlatWhite theme

  23. Relational pipes theme

Можете сами поэкспериментировать, устанавливая параметр -s.

А теперь посмотрим, что у нас находится в таблице pg_database:

SELECT * from pg_tables;

pg_tables

Тоже всё красиво (по моему мнению). И, очень важно, можно двигать содержимое таблицы вправо (с помощью клавиши вправо), и первая колонка (и заголовок) будут зафиксированы, т. е. не сдвинуться с места — это довольно таки хорошо, в больших таблицах. Автор об этом в видео и упоминает. И именно это (помимо внешнего вида) мне понравилось:

pg_tables2

Иии — еще кучу всего полезного есть, но об этом расскажу в следующий раз. Надеюсь, было интересно 🙂


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*