"""Database session management.""" from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from app.config import settings # SQLite specific connection arguments connect_args = {} if settings.DATABASE_URL.startswith("sqlite"): connect_args = {"check_same_thread": False} # Create database engine engine = create_engine( settings.DATABASE_URL, connect_args=connect_args, pool_pre_ping=True, # Verify connections before using echo=settings.DEBUG, # Log SQL queries in debug mode ) # Create session factory SessionLocal = sessionmaker( autocommit=False, autoflush=False, bind=engine )