programmingwithabdullah/todo-aipowered
0
1from sqlmodel import create_engine, Session2from typing import Generator3from settings import settings4from contextlib import contextmanager5 6# Create the database engine7engine = create_engine(8 settings.database_url,9 echo=settings.db_echo, # Set to True for SQL query logging10 pool_pre_ping=True, # Verify connections before use11 pool_recycle=300, # Recycle connections after 5 minutes12)13 14 15def get_session() -> Generator[Session, None, None]:16 """Get a database session for dependency injection."""17 with Session(engine) as session:18 yield session19 20 21@contextmanager22def get_session_context():23 """Get a database session as a context manager."""24 with Session(engine) as session:25 try:26 yield session27 session.commit()28 except Exception:29 session.rollback()30 raise31 finally:32 session.close()33 