| """ |
| Database connection and session management |
| """ |
| from sqlalchemy import create_engine |
| from sqlalchemy.ext.declarative import declarative_base |
| from sqlalchemy.orm import sessionmaker |
| from app.config import get_settings |
|
|
| settings = get_settings() |
|
|
| |
| engine = create_engine( |
| settings.database_url, |
| pool_pre_ping=True, |
| pool_size=10, |
| max_overflow=20 |
| ) |
|
|
| |
| SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) |
|
|
| |
| Base = declarative_base() |
|
|
|
|
| def get_db(): |
| """ |
| Dependency that provides database session |
| """ |
| db = SessionLocal() |
| try: |
| yield db |
| finally: |
| db.close() |
|
|