deploy / app /core /database.py
Sharooq Ayaz
adding
26406d1
Raw
History Blame Contribute Delete
766 Bytes
"""
Database engine and session management.
Provides get_db dependency for FastAPI route injection.
"""
from sqlmodel import SQLModel, Session, create_engine
from app.core.config import settings
from typing import Generator
engine = create_engine(settings.DATABASE_URL, echo=settings.DEBUG)
def create_db_tables():
"""Create all database tables from SQLModel metadata."""
from app.models.user import User # noqa: F401 - ensure model is registered
from app.models.todo import Todo # noqa: F401 - ensure model is registered
SQLModel.metadata.create_all(engine)
def get_db() -> Generator[Session, None, None]:
"""Yield a database session for request-scoped dependency injection."""
with Session(engine) as session:
yield session