app.database

Database Connection Module.

This module initializes the asynchronous database engine and provides a dependency for FastAPI to inject database sessions into route handlers.

 1"""
 2Database Connection Module.
 3
 4This module initializes the asynchronous database engine and provides a dependency
 5for FastAPI to inject database sessions into route handlers.
 6"""
 7
 8import os
 9
10from loguru import logger
11from sqlalchemy.ext.asyncio import create_async_engine
12from sqlmodel.ext.asyncio.session import AsyncSession
13
14from app.env import get_database_url
15
16_DATABASE_URL = os.environ.get("DATABASE_URL", get_database_url())
17_connect_args = {"check_same_thread": False} if "sqlite" in _DATABASE_URL else {}
18
19engine = create_async_engine(_DATABASE_URL, connect_args=_connect_args)
20"""SQLModel Database Engine"""
21
22logger.info("Database Engine Running.")
23
24
25async def get_session():
26    """
27    Generator dependency that yields an asynchronous database session.
28    """
29    async with AsyncSession(engine) as session:
30        yield session
engine = <sqlalchemy.ext.asyncio.engine.AsyncEngine object>

SQLModel Database Engine

async def get_session():
26async def get_session():
27    """
28    Generator dependency that yields an asynchronous database session.
29    """
30    async with AsyncSession(engine) as session:
31        yield session

Generator dependency that yields an asynchronous database session.