Files
WiseGrade/backend/wisegrade/db.py
T

23 lines
564 B
Python

from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, sessionmaker
from .config import get_settings
class Base(DeclarativeBase):
pass
def engine_for(url: str | None = None):
url = url or get_settings().database_url
return create_engine(url, connect_args={"check_same_thread": False} if url.startswith("sqlite") else {}, pool_pre_ping=True)
engine = engine_for()
SessionLocal = sessionmaker(bind=engine, autoflush=False, expire_on_commit=False)
def get_db():
with SessionLocal() as session:
yield session