mirror of
https://github.com/ijaric/voice_assistant.git
synced 2025-05-24 14:33:26 +00:00
fix: provide db settings
This commit is contained in:
parent
8bc6972ca2
commit
bee0048a61
|
@ -8,7 +8,7 @@ import lib.app.split_settings as app_split_settings
|
|||
|
||||
class Settings(pydantic_settings.BaseSettings):
|
||||
api: app_split_settings.ApiSettings = pydantic.Field(default_factory=lambda: app_split_settings.ApiSettings())
|
||||
db: app_split_settings.PostgresSettings = pydantic.Field(
|
||||
postgres: app_split_settings.PostgresSettings = pydantic.Field(
|
||||
default_factory=lambda: app_split_settings.PostgresSettings()
|
||||
)
|
||||
logger: app_split_settings.LoggingSettings = pydantic.Field(
|
||||
|
|
|
@ -2,30 +2,32 @@ import typing
|
|||
|
||||
import sqlalchemy.ext.asyncio as sa_asyncio
|
||||
|
||||
import lib.app.settings as app_settings
|
||||
import lib.app.split_settings as app_split_settings
|
||||
|
||||
|
||||
class AsyncDB:
|
||||
"""Async DB connection."""
|
||||
|
||||
def __init__(self, settings: app_settings.Settings):
|
||||
def __init__(self, settings: app_split_settings.DBSettings):
|
||||
self.engine = sa_asyncio.create_async_engine(
|
||||
url=settings.db.dsn,
|
||||
pool_size=settings.db.pool_size,
|
||||
pool_pre_ping=settings.db.pool_pre_ping,
|
||||
echo=settings.db.echo,
|
||||
url=settings.dsn,
|
||||
pool_size=settings.pool_size,
|
||||
pool_pre_ping=settings.pool_pre_ping,
|
||||
echo=settings.echo,
|
||||
future=True,
|
||||
)
|
||||
self.async_session = sa_asyncio.async_sessionmaker(
|
||||
bind=self.engine,
|
||||
autocommit=settings.db.auto_commit,
|
||||
autoflush=settings.db.auto_flush,
|
||||
expire_on_commit=settings.db.expire_on_commit,
|
||||
autocommit=settings.auto_commit,
|
||||
autoflush=settings.auto_flush,
|
||||
expire_on_commit=settings.expire_on_commit,
|
||||
class_=sa_asyncio.AsyncSession,
|
||||
)
|
||||
|
||||
|
||||
async def get_session(settings: app_settings.Settings) -> typing.AsyncGenerator[sa_asyncio.AsyncSession, typing.Any]:
|
||||
async def get_session(
|
||||
settings: app_split_settings.DBSettings,
|
||||
) -> typing.AsyncGenerator[sa_asyncio.AsyncSession, typing.Any]:
|
||||
db = AsyncDB(settings)
|
||||
async with db.async_session() as session:
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue
Block a user