mirror of
https://github.com/ijaric/voice_assistant.git
synced 2025-05-24 14:33:26 +00:00
feat: extened settings
This commit is contained in:
parent
31951ca824
commit
8bc6972ca2
|
@ -14,6 +14,13 @@ class DBSettings(pydantic_settings.BaseSettings):
|
||||||
user: str
|
user: str
|
||||||
password: pydantic.SecretStr
|
password: pydantic.SecretStr
|
||||||
|
|
||||||
|
pool_size: int
|
||||||
|
pool_pre_ping: bool
|
||||||
|
echo: bool
|
||||||
|
auto_commit: bool
|
||||||
|
auto_flush: bool
|
||||||
|
expire_on_commit: bool
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def dsn(self) -> str:
|
def dsn(self) -> str:
|
||||||
"""Get database DSN."""
|
"""Get database DSN."""
|
||||||
|
@ -36,3 +43,10 @@ class PostgresSettings(DBSettings):
|
||||||
password: pydantic.SecretStr = pydantic.Field(
|
password: pydantic.SecretStr = pydantic.Field(
|
||||||
default=..., validation_alias=pydantic.AliasChoices("password", "postgres_password")
|
default=..., validation_alias=pydantic.AliasChoices("password", "postgres_password")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
pool_size: int = 50
|
||||||
|
pool_pre_ping: bool = True
|
||||||
|
echo: bool = False
|
||||||
|
auto_commit: bool = False
|
||||||
|
auto_flush: bool = False
|
||||||
|
expire_on_commit: bool = False
|
||||||
|
|
|
@ -9,10 +9,19 @@ class AsyncDB:
|
||||||
"""Async DB connection."""
|
"""Async DB connection."""
|
||||||
|
|
||||||
def __init__(self, settings: app_settings.Settings):
|
def __init__(self, settings: app_settings.Settings):
|
||||||
self.database_dsn = settings.db.dsn
|
self.engine = sa_asyncio.create_async_engine(
|
||||||
self.engine = sa_asyncio.create_async_engine(self.database_dsn, echo=settings.project.debug, future=True)
|
url=settings.db.dsn,
|
||||||
|
pool_size=settings.db.pool_size,
|
||||||
|
pool_pre_ping=settings.db.pool_pre_ping,
|
||||||
|
echo=settings.db.echo,
|
||||||
|
future=True,
|
||||||
|
)
|
||||||
self.async_session = sa_asyncio.async_sessionmaker(
|
self.async_session = sa_asyncio.async_sessionmaker(
|
||||||
self.engine, class_=sa_asyncio.AsyncSession, expire_on_commit=False
|
bind=self.engine,
|
||||||
|
autocommit=settings.db.auto_commit,
|
||||||
|
autoflush=settings.db.auto_flush,
|
||||||
|
expire_on_commit=settings.db.expire_on_commit,
|
||||||
|
class_=sa_asyncio.AsyncSession,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user