Документация

Документация/Рабочее место

Базы данных

Как в инструменте «БД» подключиться к PostgreSQL, MySQL, ClickHouse, MongoDB, 1С OData и другим базам, смотреть таблицы, выполнять запросы и править данные — и что с базами может агент.

«БД» — клиент баз данных внутри DevMachine ADE, похожий на DataGrip: подключения, дерево схем, таблицы, консоль запросов и правка строк. Агент работает с базами через те же подключения, если вы включили ему модуль «Databases» и дали доступ.

Как открыть

  • Вкладка «БД» (панель «Подключения») по умолчанию стоит в левой колонке.
  • Вид «БД» в центре открывается, когда вы дважды щёлкаете по таблице или открываете консоль подключения.

Поддерживаемые базы

БазаПорт по умолчаниюЧто нужно знать
PostgreSQL5432Дерево: базы сервера → схемы → таблицы → колонки; анализ нормальных форм
MySQL3306
MariaDB3306
SQLite—Хоста нет, указывается «Файл»
Oracle1521«Service name»; Oracle Client ставить не нужно
ClickHouse8123Строки в таблице править нельзя
MongoDB27017В консоли — вызовы mongosh; удобнее подключать строкой адреса
Cassandra9042«Keyspace»
Redis6379«Номер базы»; в консоли — команды Redis
1С ODataпорт веб-сервераСтандартный интерфейс OData опубликованной базы 1С; только чтение

Как подключиться

  1. Во вкладке «БД» нажмите «Добавить подключение» — откроется окно «Новое подключение».
  2. Выберите «Тип базы».
  3. Заполните «Хост», «Порт» (стандартный подставится сам), «База» (у некоторых типов — «Файл», «Keyspace», «Service name», «Номер базы» или «Публикация»), «Пользователь» и «Пароль». «Публикация» у 1С OData — имя, под которым база опубликована на веб-сервере. Или вставьте адрес целиком в «URL» — тогда поля можно не заполнять. Если нужно, включите «TLS/SSL».
  4. Выберите «Доступ»: «Чтение и запись» или «Только чтение». Доступ ограничивает само подключение, поэтому действует и на вас, и на агента. Что можно агенту, задаёт ещё и отдельный уровень доступа для агента — о нём ниже, в разделе «Агент и базы данных».
  5. Нажмите «Проверить соединение», затем «Сохранить».

Пароль хранится в системной связке ключей. Если связки нет, приложение помнит пароль только до перезапуска. Когда подключиться не получается, приложение объясняет причину словами: «… не принимает подключения», «Хост … не найден», «Ошибка аутентификации…».

Чтобы подключить 1С, вставьте адрес опубликованной базы или укажите хост и имя публикации. Видны только те объекты, которые администратор 1С включил в состав интерфейса OData. Подробнее — на странице Разработка на 1С.

Как пользоваться

Дерево и таблицы

Дерево устроено как в DataGrip: объекты разложены по папкам со счётчиками (tables, views и т. д.). Двойной клик по таблице, коллекции или ключу открывает вкладку «Таблица»:

  • WHERE и ORDER BY на языке самой базы, сортировка кликом по заголовку колонки;
  • «DDL» — определение объекта;
  • размер страницы;
  • «Поиск по результатам» — ищет только по строкам этой страницы.

Искать по дереву можно лупой или сочетанием ⌘ F (Ctrl F), щёлкнув сначала в панели.

Правый клик по таблице открывает меню: «Определение (DDL)», «Нормальные формы…», «Копировать ▸», «SQL-скрипт», «Обновить», «Переименовать…» и удаление таблицы. Пункт «Нормальные формы…» есть только у PostgreSQL. Он показывает, в какой нормальной форме таблица, что нарушено и что вынести, а ещё даёт черновик SQL и кнопку «Спросить агента».

Дерево и последнюю открытую страницу таблицы приложение хранит на компьютере и показывает сразу — с пометкой «кэш» и временем. Сколько их хранить, задаётся в «Настройки → Базы данных»: «Кэш схемы» и «Превью данных».

Консоль запросов

У каждого подключения своя «Консоль». В консоли PostgreSQL, MongoDB и ClickHouse можно выбрать базу.

  • «Выполнить» (⌘ ⏎ / Ctrl Enter) запускает запрос под курсором или выделенный текст.
  • «Стоп» останавливает запрос, обрывая соединение.
  • «Лимит» по умолчанию — 500 строк.
  • MongoDB принимает вызовы mongosh, Redis — команды Redis, 1С — запросы OData по одному на строку, например Catalog_Номенклатура?$top=10.

Правка данных

  1. Дважды щёлкните по ячейке, чтобы изменить значение. Чтобы записать NULL, щёлкните по ней правой кнопкой.
  2. «Добавить строку» создаёт новую строку. Выделенные строки можно удалить.
  3. Правки копятся, пока вы не нажмёте «Применить»: тогда приложение выполнит их одной транзакцией по первичному ключу. Чтобы сбросить правки, нажмите «Отменить».

Если вы уходите, не применив правки, приложение спросит, что делать: «Отменить изменения», «Остаться» или «Применить и уйти».

Нельзя править представления, результаты запросов, таблицы ClickHouse, базы 1С и данные в подключениях с доступом «Только чтение». В таблице без первичного ключа строки не получится ни изменить, ни удалить.

Агент и базы данных

Агент работает с базами только через подключения из «БД»: видит их список, читает схему и данные, вносит изменения. Для этого нужны две вещи.

1. Модуль «Databases»

Инструменты для баз данных есть у агента, только если включён модуль «Databases». По умолчанию он выключен. Включите его в «Настройки → Модули». Сами вы пользуетесь панелью «БД» и без модуля. Подробнее — на странице Модули.

2. Уровень доступа к подключению

У каждого подключения свой уровень доступа для агента:

УровеньЧто может агент
«Закрыто»Видит только название подключения
«Только схема»Таблицы, столбцы, индексы, DDL — ни одной строки данных
«Чтение»Схема и данные. Всё прочитанное уходит в модель
«Чтение и запись»Вдобавок меняет данные и схему — каждый раз после вашего подтверждения

Новое подключение получает уровень «Чтение и запись». Пока модуль «Databases» выключен, инструментов для баз у агента нет; уровень начнёт работать, когда вы включите модуль, поэтому проверьте уровни подключений заранее. Поменять уровень можно в «Настройки → Безопасность агента → Подключения», в блоке «Базы данных». Там же всегда видно, какой уровень действует сейчас. Если изменить подключение так, что оно поведёт на другую базу (сменить хост, базу или пользователя), уровень вернётся к значению по умолчанию. Подробнее — на странице Доступ агента к базам, кластерам и очередям.

Доступ «Только чтение» в настройках самого подключения сильнее уровня агента: при таком доступе агент ничего не изменит.

Важно

На уровнях «Чтение» и «Чтение и запись» всё, что агент прочитал из базы, уходит в модель. Если в базе персональные данные или это боевая база, выберите «Только схема» или «Закрыто».

Подтверждение записи

Каждое изменение, которое задумал агент, приходит к вам карточкой с текстом запроса и кнопкой «Разрешить» — отдельной на каждый вызов. Пока вы не нажмёте «Разрешить», запись не выполнится. Подробнее — на странице Разрешения и вопросы агента.

Что ещё стоит знать

  • Агент может сам добавить подключение — например, к тестовому контейнеру, который он поднял. Оно появится в «БД», а вы получите уведомление «Агент добавил подключение «…»». Умолчания у него те же, что у подключения, которое добавили вы: и «Доступ», и уровень доступа для агента — «Чтение и запись».
  • Когда агент обращается к базе, панель «БД» выходит на передний план.
  • Если агент запускает psql или другой клиент баз данных командой в оболочке, такой запуск тоже нужно подтвердить.
  • Прежде чем отдать строки агенту, приложение маскирует в них персональные данные и секреты: находит их по названию столбца и по виду значения. Подробнее — на странице Данные и приватность.

Сочетания клавиш

ДействиеmacOSWindows и Linux
Выполнить запрос⌘ ⏎Ctrl Enter
Поиск по дереву или таблице⌘ FCtrl F
Обновить базы данных⌥ ⌘ YCtrl Alt Y

Ограничения

  • «БД» работает на всех платформах.
  • Приложение подключается к базе напрямую с вашего компьютера. В проекте на сервере подключения тоже идут с вашего компьютера, а агент на сервере получает к ним доступ через SSH-туннель. Туннель приложение открывает само, когда подключается к серверу; настраивать его не нужно.
  • В ClickHouse нельзя править строки в таблице; 1С OData — только чтение.
  • «Поиск по результатам» ищет только по строкам текущей страницы. Чтобы отобрать строки по всей таблице, используйте WHERE.

Что дальше

Обновлено · Нашли неточность? Напишите на support@devmachine.ai или в Telegram.