Документация/Рабочее место
Базы данных
Как в инструменте «БД» подключиться к PostgreSQL, MySQL, ClickHouse, MongoDB, 1С OData и другим базам, смотреть таблицы, выполнять запросы и править данные — и что с базами может агент.
«БД» — клиент баз данных внутри DevMachine ADE, похожий на DataGrip: подключения, дерево схем, таблицы, консоль запросов и правка строк. Агент работает с базами через те же подключения, если вы включили ему модуль «Databases» и дали доступ.
Как открыть
- Вкладка «БД» (панель «Подключения») по умолчанию стоит в левой колонке.
- Вид «БД» в центре открывается, когда вы дважды щёлкаете по таблице или открываете консоль подключения.
Поддерживаемые базы
| База | Порт по умолчанию | Что нужно знать |
|---|---|---|
| PostgreSQL | 5432 | Дерево: базы сервера → схемы → таблицы → колонки; анализ нормальных форм |
| MySQL | 3306 | |
| MariaDB | 3306 | |
| SQLite | — | Хоста нет, указывается «Файл» |
| Oracle | 1521 | «Service name»; Oracle Client ставить не нужно |
| ClickHouse | 8123 | Строки в таблице править нельзя |
| MongoDB | 27017 | В консоли — вызовы mongosh; удобнее подключать строкой адреса |
| Cassandra | 9042 | «Keyspace» |
| Redis | 6379 | «Номер базы»; в консоли — команды Redis |
| 1С OData | порт веб-сервера | Стандартный интерфейс OData опубликованной базы 1С; только чтение |
Как подключиться
- Во вкладке «БД» нажмите «Добавить подключение» — откроется окно «Новое подключение».
- Выберите «Тип базы».
- Заполните «Хост», «Порт» (стандартный подставится сам), «База» (у некоторых типов — «Файл», «Keyspace», «Service name», «Номер базы» или «Публикация»), «Пользователь» и «Пароль». «Публикация» у 1С OData — имя, под которым база опубликована на веб-сервере. Или вставьте адрес целиком в «URL» — тогда поля можно не заполнять. Если нужно, включите «TLS/SSL».
- Выберите «Доступ»: «Чтение и запись» или «Только чтение». Доступ ограничивает само подключение, поэтому действует и на вас, и на агента. Что можно агенту, задаёт ещё и отдельный уровень доступа для агента — о нём ниже, в разделе «Агент и базы данных».
- Нажмите «Проверить соединение», затем «Сохранить».
Пароль хранится в системной связке ключей. Если связки нет, приложение помнит пароль только до перезапуска. Когда подключиться не получается, приложение объясняет причину словами: «… не принимает подключения», «Хост … не найден», «Ошибка аутентификации…».
Чтобы подключить 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.
Правка данных
- Дважды щёлкните по ячейке, чтобы изменить значение. Чтобы записать NULL, щёлкните по ней правой кнопкой.
- «Добавить строку» создаёт новую строку. Выделенные строки можно удалить.
- Правки копятся, пока вы не нажмёте «Применить»: тогда приложение выполнит их одной транзакцией по первичному ключу. Чтобы сбросить правки, нажмите «Отменить».
Если вы уходите, не применив правки, приложение спросит, что делать: «Отменить изменения», «Остаться» или «Применить и уйти».
Нельзя править представления, результаты запросов, таблицы ClickHouse, базы 1С и данные в подключениях с доступом «Только чтение». В таблице без первичного ключа строки не получится ни изменить, ни удалить.
Агент и базы данных
Агент работает с базами только через подключения из «БД»: видит их список, читает схему и данные, вносит изменения. Для этого нужны две вещи.
1. Модуль «Databases»
Инструменты для баз данных есть у агента, только если включён модуль «Databases». По умолчанию он выключен. Включите его в «Настройки → Модули». Сами вы пользуетесь панелью «БД» и без модуля. Подробнее — на странице Модули.
2. Уровень доступа к подключению
У каждого подключения свой уровень доступа для агента:
| Уровень | Что может агент |
|---|---|
| «Закрыто» | Видит только название подключения |
| «Только схема» | Таблицы, столбцы, индексы, DDL — ни одной строки данных |
| «Чтение» | Схема и данные. Всё прочитанное уходит в модель |
| «Чтение и запись» | Вдобавок меняет данные и схему — каждый раз после вашего подтверждения |
Новое подключение получает уровень «Чтение и запись». Пока модуль «Databases» выключен, инструментов для баз у агента нет; уровень начнёт работать, когда вы включите модуль, поэтому проверьте уровни подключений заранее. Поменять уровень можно в «Настройки → Безопасность агента → Подключения», в блоке «Базы данных». Там же всегда видно, какой уровень действует сейчас. Если изменить подключение так, что оно поведёт на другую базу (сменить хост, базу или пользователя), уровень вернётся к значению по умолчанию. Подробнее — на странице Доступ агента к базам, кластерам и очередям.
Доступ «Только чтение» в настройках самого подключения сильнее уровня агента: при таком доступе агент ничего не изменит.
Важно
На уровнях «Чтение» и «Чтение и запись» всё, что агент прочитал из базы, уходит в модель. Если в базе персональные данные или это боевая база, выберите «Только схема» или «Закрыто».
Подтверждение записи
Каждое изменение, которое задумал агент, приходит к вам карточкой с текстом запроса и кнопкой «Разрешить» — отдельной на каждый вызов. Пока вы не нажмёте «Разрешить», запись не выполнится. Подробнее — на странице Разрешения и вопросы агента.
Что ещё стоит знать
- Агент может сам добавить подключение — например, к тестовому контейнеру, который он поднял. Оно появится в «БД», а вы получите уведомление «Агент добавил подключение «…»». Умолчания у него те же, что у подключения, которое добавили вы: и «Доступ», и уровень доступа для агента — «Чтение и запись».
- Когда агент обращается к базе, панель «БД» выходит на передний план.
- Если агент запускает
psqlили другой клиент баз данных командой в оболочке, такой запуск тоже нужно подтвердить. - Прежде чем отдать строки агенту, приложение маскирует в них персональные данные и секреты: находит их по названию столбца и по виду значения. Подробнее — на странице Данные и приватность.
Сочетания клавиш
| Действие | macOS | Windows и Linux |
|---|---|---|
| Выполнить запрос | ⌘ ⏎ | Ctrl Enter |
| Поиск по дереву или таблице | ⌘ F | Ctrl F |
| Обновить базы данных | ⌥ ⌘ Y | Ctrl Alt Y |
Ограничения
- «БД» работает на всех платформах.
- Приложение подключается к базе напрямую с вашего компьютера. В проекте на сервере подключения тоже идут с вашего компьютера, а агент на сервере получает к ним доступ через SSH-туннель. Туннель приложение открывает само, когда подключается к серверу; настраивать его не нужно.
- В ClickHouse нельзя править строки в таблице; 1С OData — только чтение.
- «Поиск по результатам» ищет только по строкам текущей страницы. Чтобы отобрать строки по всей таблице, используйте WHERE.
Что дальше
Обновлено · Нашли неточность? Напишите на support@devmachine.ai или в Telegram.
