pgcli — это улучшенный интерфейс командной строки для PostgreSQL. Его ключевые преимущества перед стандартным клиентом psql — контекстное автодополнение команд, названий таблиц и столбцов, а также подсветка синтаксиса SQL.
Он сохраняет совместимость с большинством команд psql, поэтому знакомый инструмент становится удобнее.
📦 Установка и подключение
Установить pgcli можно через менеджеры пакетов:
- Linux (Debian/Ubuntu):
sudo apt install pgcli. - macOS (Homebrew):
brew install pgcli. - Через pip (кросс-платформенно):
pip install pgcli.
Подключиться к базе можно несколькими способами:
# Стандартное подключение с параметрами
pgcli -h localhost -p 5432 -U ваш_пользователь -d имя_базы
# Подключение через строку подключения (DSN)
pgcli postgres://пользователь:пароль@хост:порт/база
# Если пароль содержит спецсимволы (например, @), их нужно закодировать
pgcli 'postgresql://amjith:%40postgres@localhost:5432/app_db'Как и в psql, можно использовать переменные окружения (PGHOST, PGUSER и т.д.).
🔧 Основные команды и примеры работы
Большинство метакоманд (\-команд) из psql работают и в pgcli.
Навигация и просмотр объектов
Следующие команды помогут вам быстро ориентироваться в структуре базы данных:
| Действие | Команда в pgcli | Результат |
|---|---|---|
| Список всех баз данных | \l или \list | Выводит список БД на сервере. |
| Переключиться на другую БД | \c имя_базы | Подключение к указанной БД (автодополнение предложит варианты). |
| Список таблиц | \dt | Показывает таблицы в текущей схеме. |
| Структура таблицы | \d имя_таблицы | Подробное описание столбцов, типов, индексов. |
Список представлений (views) | \dv | Выводит список представлений. |
Работа с таблицами и данными
Вот пример сессии, демонстрирующей создание таблицы и вставку данных с автодополнением:
-- 1. Создание таблицы. Начните вводить CREATE TABLE... pgcli предложит продолжить.
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary INTEGER
);
-- 2. Вставка данных. При вводе INSERT INTO... автодополнение предложит имя таблицы 'employees'.
INSERT INTO employees (name, department, salary) VALUES
('Иван Петров', 'Разработка', 120000),
('Мария Сидорова', 'Аналитика', 95000);
-- 3. Запрос с JOIN. Автодополнение подскажет имена столбцов при вводе.
SELECT e.name, e.department FROM employees e WHERE e.salary > 100000;Управление и служебные операции
- Выполнить SQL из файла:
\i /путь/к/файлу.sql. - Включить/выключить замер времени выполнения запроса:
\timing. - Переключить расширенный вывод (вертикальный формат для широких таблиц):
\x. - Выйти из pgcli:
\qилиquit.
⚡ Уникальные возможности pgcli
- Умное автодополнение: Подсказывает ключевые слова, имена таблиц, столбцов и даже функции по мере ввода.
- Режим многострочного редактирования: Можно писать длинные, читаемые запросы. Режим включается клавишей F3.
- Именованные запросы: Сохраняйте часто используемые запросы для быстрого вызова.
-- Сохранить запрос \ns top_earners SELECT * FROM employees WHERE salary > 100000; -- Выполнить сохраненный запрос \n top_earners -- Список всех именованных запросов \n - Открытие запроса в редакторе: Нажмите
\eв командной строке, чтобы открыть последний запрос во внешнем текстовом редакторе (например, vim или nano). - Работа через SSH-туннель: Позволяет безопасно подключаться к удаленным базам.
- Интеграция с IPython: Запуск pgcli прямо из консоли IPython для анализа результатов.
⚙️ Настройка и советы
- Файл конфигурации находится в
~/.config/pgcli/config. В нём можно настроить цветовые темы, поведение автодополнения и приглашение командной строки. - Справка: В любой момент введите
\?для списка метакоманд или\hдля помощи по синтаксису SQL. - Для резервного копирования и восстановления (
pg_dump,pg_restore) используйте эти утилиты в системной командной строке, а не внутри pgcli. Сам pgcli предназначен для интерактивной работы.
Что выбрать: pgcli или psql?
- pgcli — лучший выбор для повседневной интерактивной работы, написания и исследования запросов благодаря автодополнению и подсветке.
- psql стоит использовать для автоматизации в скриптах, так как это стандартный инструмент, гарантированно доступный на всех серверах.
Итог: pgcli делает работу с PostgreSQL в терминале значительно быстрее и приятнее. Основные команды привычны для пользователей psql, а продвинутые функции вроде автодополнения и именованных запросов сокращают количество рутинных действий.
Если вам нужно углубиться в конкретную тему, например, тонкую настройку файла конфигурации или использование всех параметров pg_dump, просто уточните ваш запрос.