Files

33 lines
686 B
Python
Raw Permalink Normal View History

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