adb

Добавлено в версии 1.1.

class pydantic_extra.adb.AsyncDB

Базовые классы: pydantic.BaseModel, abc.ABC

Базовый класс для конфигурации базы данных

type: str
abstract property connect_str: str | sqlalchemy.URL

строка для sqlalchemy.ext.asyncio.create_async_engine() (может быть cached_property)

property engine: AsyncEngine

Создаёт AsyncEngine (может быть cached_property)

session() AsyncSession

Создаёт AsyncSession

setup_engine(engine: sqlalchemy.Engine) sqlalchemy.Engine

Настраивает экземпляр AsyncEngine для работы с данным диалектом

engine() применяет данный метод.

class pydantic_extra.adb.AsyncSQLite

Базовые классы: AsyncDB, CustomLibraryMixin

Конфигурация для базы данных SQLite

type: Literal['sqlite']
path: pathlib.Path

путь до базы данных

library: str = "aiosqlite"

Используемая библиотека. Способы замены.

class pydantic_extra.adb.AsyncMySQL

Базовые классы: AsyncDB, CustomLibraryMixin

Конфигурация для базы данных MySQL и MariaDB

type: Literal['mysql', 'mariadb']
host: str

адрес сервера баз данных

port: int = 3306

порт сервера баз данных

login: str

логин для авторизации на сервере баз данных

password: SecretStr

пароль для авторизации на сервере баз данных

encoding: str = "utf8mb4"

кодировка базы данных

database: str

имя базы на сервере баз данных

library: str = "aiomysql"

Используемая библиотека. Способы замены.

class pydantic_extra.adb.AsyncAnyDB

Базовые классы: AsyncDB

Конфигурация для любой базы данных

type: Literal['any']
str_: str

В конфигурации используйте str.

Строка для SQLAlchemy

type pydantic_extra.adb.T_AsyncDB = AsyncSQLite | AsyncMySQL | AsyncAnyDB

Пример:

from pydantic import BaseModel, Field

from pydantic_extra.adb import T_AsyncDB


class Config(BaseModel):
    db: T_AsyncDB = Field(discriminator="type")