| 1 | from collections.abc import Generator |
| 2 | |
| 3 | from sqlalchemy import create_engine |
| 4 | from sqlalchemy.orm import Session, sessionmaker |
| 5 | |
| 6 | from app.core.config import settings |
| 7 | |
| 8 | engine = create_engine(settings.database_url, pool_pre_ping=True, future=True) |
| 9 | SessionLocal = sessionmaker(bind=engine, autoflush=False, expire_on_commit=False, future=True) |
| 10 | |
| 11 | |
| 12 | def get_db() -> Generator[Session, None, None]: |
| 13 | db = SessionLocal() |
| 14 | try: |
| 15 | yield db |
| 16 | finally: |
| 17 | db.close() |