pgcli — консольный клиент для PostgreSQL с подсветкой синтаксиса

pgcliСтандартным клиентом для PostgreSQL является консольный psql. Именно он идет в комплекте при установке данной СУБД. Но, естественно, можно установить какой-то другой клиент, например, pgAdmin или DBeaver, либо что-то подобное. Но уметь работать в psql все-такие желательно.

Выглядит psql — как обычная консоль, черный экран и текст:

psql interface

Есть у него метакоманды (которые начинаются с обратного слэша \). Минимум функциональности, зато работу свою выполняет.

Захотелось мне найти подобную же программу, но с возможностью автокомплита. Нашел только одну, но сильно долго не искал — на этом и успокоился. Программа называется pgcli. У нее и оф.сайт есть (с помощью данной программы можно подключаться и к другим СУБД). Исходный код открыт, все это на сайте можете посмотреть-почитать. И про другие возможности программы.

Чтобы установить её (в Ubnutu) необходимо ввести простую команду:

sudo apt install pgcli

Установка занимает несколько секунд.

На официальном сайте расписано, как установить под Windows (большая инструкция из нескольких шагов), а еще есть описание возможностей данной утилиты, много скриншотов. Хороший сайт.

Итак, pgcli установилась, теперь нужно ее запустить. Естественно, PostgreSQL должен быть установлен.

Я зашел под пользователя postgres (он был создан автоматически, при установке PostgreSQL из пакета). От имени этого пользователя выполняю следующую команду:

pgcli -U postgres

Первый раз нужно указать пользователя (и, если нужно, другие параметры подключения). При последующих подключениях я уже имя пользователя не указывал, pgcli заходил под именем postgres.

Видимо, у меня что-то то ли не доустановилось, то ли конфиг нужно какой-то подкрутить (разбираться не стал), появляются сообщения разные при входе:

pgcli one

Проверяем работу автокомплита — работает! Прикольно даже, необычно:

pgcli two

Даже метакоманды может дописывать:

pgcli three

Чтобы выбрать какой-то пункт из подсказки — нужно воспользоваться стрелками либо клавишей tab.

А теперь — тест. Решил взять большой запрос и посмотреть, как он будет отображаться в pgcli. Вот с этой страницы документации взял запрос:

WITH regional_sales AS (
    SELECT region, SUM(amount) AS total_sales
    FROM orders
    GROUP BY region
), top_regions AS (
    SELECT region
    FROM regional_sales
    WHERE total_sales = (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT region,
       product,
       SUM(quantity) AS product_units,
       SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;

И добавил его в pgcli:

pgcli query

Ничего так, прикольно отображается.

Естественно, у pgcli есть man-страница, на которой расписаны параметры этой утилиты:

pgcli man

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

И бонус — гифка с работой pgcli:


Be the first to comment

Leave a Reply

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


*