Когда нужно проверить запись в таблице, выполнить запрос из логов или понять, почему база выбрала странный план, разработчик обычно вспоминает про DBeaver, pgAdmin или DataGrip. Все три варианта решают задачу, но по-разному.
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. OpenIDE знает структуру подключенной базы и использует ее в автодополнении. После FROM появляются реальные таблицы, после обращения к таблице подсказки ее колонок. Меньше шансов написать customer_id там, где в схеме поле называется client_id, и узнать об этом только после запуска.

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

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


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

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

Впервые опубликовано на Хабре.