Spaces:
No application file
No application file
| """ | |
| 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 | |