Files

33 lines
686 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, DeclarativeBase
from typing import Generator
from app.config import get_settings
settings = get_settings()
# Create engine
engine = create_engine(
settings.DATABASE_URL,
connect_args={"check_same_thread": False}
if "sqlite" in settings.DATABASE_URL
else {},
echo=settings.DEBUG,
)
# Session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
class Base(DeclarativeBase):
pass
def get_db() -> Generator:
"""Dependency for FastAPI to get database session."""
db = SessionLocal()
try:
yield db
finally:
db.close()