19 lines
515 B
Python
19 lines
515 B
Python
from __future__ import annotations
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, async_sessionmaker, create_async_engine
|
|
|
|
from backend.config.settings import DatabaseSettings
|
|
|
|
|
|
def create_engine(settings: DatabaseSettings) -> AsyncEngine:
|
|
return create_async_engine(
|
|
settings.url,
|
|
pool_pre_ping=True,
|
|
future=True,
|
|
)
|
|
|
|
|
|
def create_session_factory(engine: AsyncEngine) -> async_sessionmaker[AsyncSession]:
|
|
return async_sessionmaker(engine, expire_on_commit=False)
|
|
|