"""Database configuration and session management""" from sqlmodel import SQLModel, create_engine, Session from typing import Generator import os DATABASE_URL = os.getenv("DATABASE_URL", "sqlite:///./photos.db") # SQLite-specific connect_args connect_args = {"check_same_thread": False} if "sqlite" in DATABASE_URL else {} engine = create_engine( DATABASE_URL, echo=False, connect_args=connect_args, ) # Session factory for manual session creation def SessionLocal(): return Session(engine) def create_db_and_tables(): """Create all database tables""" SQLModel.metadata.create_all(engine) def get_session() -> Generator[Session, None, None]: """Dependency for getting database session""" with Session(engine) as session: yield session