Сохраняет данные (INSERT или UPDATE в зависимости от isNew).
Данные для запроса. Включает как запрос, так и сами данные
Флаг, говорящий о том, что добавляется новая запись
Вызывается при удалении модели или завершении сессии. Может использоваться для освобождения ресурсов, связанных с таблицей.
Название таблицы, подключение к которой закрывается
Устанавливает подключение к базе данных. В случае успешного подключения возвращается true
Вызывается при завершении работы приложения или замене адаптера. Используйте для закрытия соединений, сохранения данных и т.п.
OptionalensureSchemaПодготавливает хранилище под встроенные таблицы umbot: создаёт недостающие таблицы, колонки или индексы. Фреймворк вызывает метод один раз после каждого успешного подключения (connect), до первого запроса к базе. Метод обязан быть идемпотентным: таблицы и индексы, которые уже есть, не пересоздаются.
Необязательный: адаптер без метода (или базовый адаптер) ничего не готовит — так работают хранилища без схемы (FileAdapter). SQL-адаптер должен создать таблицы, иначе первый же запрос упадёт с «таблица не существует».
Описание встроенных таблиц (DB_TABLES_SCHEMA)
false (или Promise
async ensureSchema(tables: readonly IDbTableSchema[]): Promise<boolean> {
for (const table of tables) {
const columns = Object.entries(table.fields).map(([name, field]) =>
`"${name}" ${field.type === 'text' ? 'TEXT' : 'VARCHAR(255)'}`,
);
await this.#pool.query(
`CREATE TABLE IF NOT EXISTS "${table.tableName}" (${columns.join(', ')})`,
);
}
return true;
}
Экранирует строку для безопасного использования в SQL-запросах.
— Экранируемая строка
Извлекает значения из результата запроса.
Метод инициализации плагина.
Вызывается один раз при подключении через bot.use().
Контекст приложения
Основной класс приложения
Выполняет INSERT-запрос.
Проверяет, установлено ли соединение с БД.
Выполняет произвольный запрос через callback.
Выполняет DELETE-запрос.
Выполняет SELECT-запрос.
Дополнительная информация для запроса. Содержит информацию о таблице и структуре.
Условия фильтрации (WHERE)
Определяет нужно ли вернуть только 1 найденную запись, либо отдать все доступные данные.
Выполняет SELECT с ограничением до одной записи.
Дополнительные данные для запроса
— Условия поиска
Выполняет UPDATE-запрос.
Адаптер для работы с базой данных.
Обеспечивает унифицированный интерфейс для различных СУБД (файловая, MongoDB, PostgreSQL и др.). Все данные подключения и соединения хранятся в
AppContextчерезIDatabaseInfo, чтобы избежать повторного подключения при каждом запросе.