Когда нужно проверить запись в таблице, выполнить запрос из логов или понять, почему база выбрала странный план, разработчик обычно вспоминает про DBeaver, pgAdmin или DataGrip. Все три варианта решают задачу, но по-разному.
-
DBeaver и pgAdmin остаются отдельными программами: со своими окнами, подключениями и настройками.
-
DataGrip можно получить как в отдельной IDE, так и внутри IntelliJ IDEA Ultimate, WebStorm, GoLand и других IDE от JetBrains. Но сегодня путь от скачивания до работающей IDE с лицензией далёк от простого и легального.
OpenIDE это третий вариант: полноценный DB-клиент уже входит в состав IDE. Через него легко подключиться к базе, посмотреть ее структуру, написать SQL с комплишенами и подсветкой синтаксиса, запустить EXPLAIN, править и выгружать данные.
Благодаря мультиязычности OpenIDE, один и тот же сценарий работы с БД будет полезен для тех, кто пишет на Java, Kotlin, Go, Python, PHP, TypeScript или JavaScript.
Посмотрим на этот путь целиком. Подключимся к PostgreSQL, найдем таблицу заказов, проверим запрос из логов, поправим тестовую запись и выгрузим результат.
PostgreSQL взяли для примера как самую популярную СУБД. Все возможности, которые разберем дальше, также доступны для MySQL, ClickHouse, SQLite и Oracle.
Подключение к базе и навигация по схеме
Работа начинается в панели DB Client. Для нового подключения указываем хост, порт, имя базы, логин и пароль. После сохранения подключение появляется в дереве объектов. Оно доступно и в других проектах, поэтому одну и ту же базу не приходится подключать заново для каждого репозитория.

После подключения OpenIDE загружает структуру базы. В дереве видны подключения, схемы, таблицы, колонки и другие объекты.

Для таблицы можно сгенерировать DDL, а для схемы открыть диаграмму связей между таблицами. Так видно не только состав одной таблицы, но и внешние ключи вокруг нее.

SQL-редактор знает реальную схему
Новая SQL-консоль создается для выбранного подключения. В ней можно задать базу и схему, в контексте которых будет выполняться запрос. Это особенно полезно, когда в одном подключении несколько схем с одинаковыми именами таблиц.
Редактор не просто подсвечивает ключевые слова SQL. OpenIDE знает структуру подключенной базы и использует ее в автодополнении. После FROM появляются реальные таблицы, после обращения к таблице подсказки ее колонок. Меньше шансов написать customer_id там, где в схеме поле называется client_id, и узнать об этом только после запуска.

Опечатки и ошибки синтаксиса тоже подсвечиваются до выполнения. Это не отменяет проверку запроса, особенно если он меняет данные, но избавляет нас от простых ошибок.
Выполнение запроса и просмотр результата
Запрос можно выполнить из той же консоли. Результат открывается в таблице под редактором, поэтому текст SQL и полученные строки остаются в одном контексте. Можно сверять выбранные колонки, менять условие и сразу видеть новый результат.

Такой вариант работы с базой подходит и для точечной проверки, и для короткого исследования данных. Допустим, API вернул заказ в неожиданном статусе. Сначала находим запись по id, затем добавляем связь с таблицей платежей и проверяем, когда менялся статус. Код обработчика, SQL и ответ базы находятся рядом, поэтому между ними проще сопоставлять имена полей и значения.
Если запрос выполняется медленно, его можно сразу передать в EXPLAIN. OpenIDE показывает план в виде дерева: видно последовательность операций, сканирование таблиц и узлы, на которых стоит искать проблему. Не приходится копировать SQL в другой клиент только ради плана выполнения.


Сортировка, фильтрация и правка данных
Иногда нужный ответ проще получить не новым SQL, а прямо в таблице результатов. В визуальной таблице доступны сортировка и фильтрация. Можно оставить заказы одного пользователя, отсортировать их по времени и быстро увидеть повторяющиеся или выбивающиеся значения.
Данные можно редактировать прямо в ячейке. Для боевой базы это операция, которая требует тех же прав и осторожности, что обычный UPDATE. Зато на локальном стенде или тестовом окружении точечная правка экономит время: не нужно писать отдельный запрос ради одного статуса или флага.
Для массовых изменений по-прежнему лучше написать явный SQL или миграцию. В таком виде изменение можно перечитать, проверить и сохранить в истории проекта. Табличный редактор нужен для точечных операций, где важнее быстро увидеть строку и поправить конкретное значение.
Экспорт результатов
Результат запроса выгружается из грида. В DB-клиенте доступны CSV, JSON, SQL и XML.

Экспорт завершает тот же сценарий, с которого мы начали: нашли проблему по логам, проверили схему, выполнили запрос, посмотрели план, поправили тестовые данные и сохранили результат.
Какие базы поддерживаются сейчас, а какие появятся позже
Сейчас DB-клиент OpenIDE поддерживает пять СУБД:
-
PostgreSQL
-
MySQL
-
ClickHouse
-
SQLite
-
Oracle
В планах SQL Server, Redis и MongoDB. Сроки поддержки этих и других СУБД зависят от вашей обратной связи.
Как попробовать
Часть базовых возможностей DB-клиента доступна в OpenIDE. Полный набор функций без ограничений входит в состав OpenIDE Pro.
OpenIDE бесплатна навсегда, а возможности Pro-версии доступны в течение 60-дневного пробного периода без регистрации. Если в DB-клиенте не хватает вашей СУБД или рабочего сценария, обязательно напишите нам!

ссылка на оригинал статьи https://habr.com/ru/articles/1067274/