2026-01-25 18:01:48 +01:00

29 lines
765 B
Python

"""
Database connection and session management
"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, Session
from sqlalchemy.pool import NullPool
from app.core.config import get_settings
settings = get_settings()
# Create engine with connection pooling disabled for SQLite compatibility
# In production with PostgreSQL, use QueuePool for better performance
engine = create_engine(
settings.database_url,
echo=settings.debug,
poolclass=NullPool if "sqlite" in settings.database_url else None,
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
def get_db() -> Session:
"""Dependency: get database session"""
db = SessionLocal()
try:
yield db
finally:
db.close()