psql - консольний клієнт PostgreSQL. Окрім SQL, у ньому є метакоманди з \, що швидко показують структуру бази.
Підключення:
psql -h localhost -U app -d app_production
psql "postgresql://app@localhost:5432/app_production"
Структура бази:
\l список баз
\c app_test підключитися до іншої бази
\dt таблиці
\d orders структура таблиці: колонки, індекси, обмеження, тригери
\di індекси
\dn схеми
\du ролі
\df функції
\dx встановлені розширення
\dt+ таблиці з розміром
Робота із запитами:
\x auto розгорнутий вивід для широких рядків
\timing on показувати час виконання кожного запиту
\e редагувати останній запит у $EDITOR
\i file.sql виконати файл
\copy orders TO 'orders.csv' CSV HEADER експорт з клієнтського боку
\watch 2 повторювати запит кожні 2 секунди
\q вийти
Корисні прийоми:
\set ON_ERROR_STOP onу скриптах - зупинитися на першій помилці замість виконання решти.BEGIN;перед ризикованими змінами на проді - подивитися результат і вирішити:COMMITчиROLLBACK.\set AUTOCOMMIT off- кожна команда автоматично в транзакції, доки не зробитиCOMMIT.~/.psqlrc- налаштування за замовчуванням (\timing,\x auto, кольоровий промпт для продакшену).~/.pgpass- паролі для підключень, щоб не вводити їх щоразу й не передавати в командному рядку.
На проді - обережно: psql на продакшн-базі - повний доступ. Безпечніше підключатися до репліки для читання і мати окрему роль лише з правами читання для розслідувань.