adb

Added in version 1.1.

class pydantic_extra.adb.AsyncDB

Bases: pydantic.BaseModel, abc.ABC

The base class for database configuration

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

string for sqlalchemy.ext.asyncio.create_async_engine() (maybe cached_property)

property engine: AsyncEngine

Creates AsyncEngine (maybe cached_property)

session() AsyncSession

Creates AsyncSession

setup_engine(engine: sqlalchemy.Engine) sqlalchemy.Engine

Configures an instance of AsyncEngine for working with this dialect

engine() applies this method.

class pydantic_extra.adb.AsyncSQLite

Bases: AsyncDB, CustomLibraryMixin

Configuration for the SQLite database

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

the path to the database

library: str = "aiosqlite"

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

class pydantic_extra.adb.AsyncMySQL

Bases: AsyncDB, CustomLibraryMixin

Configuration for MySQL and MariaDB databases

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

database server address

port: int = 3306

database server port

login: str

login for authorization on the database server

password: SecretStr

password for authorization on the database server

encoding: str = "utf8mb4"

database encoding

database: str

the name of the database on the database server

library: str = "aiomysql"

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

class pydantic_extra.adb.AsyncAnyDB

Bases: AsyncDB

Configuration for any database

type: Literal['any']
str_: str

In the configuration, use str.

The string for SQLAlchemy

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

Example:

from pydantic import BaseModel, Field

from pydantic_extra.adb import T_AsyncDB


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