malloc-app / app /database.py
sudhanshu388's picture
Upload 64 files
0d374d2 verified
Raw
History Blame Contribute Delete
837 Bytes
"""
Database engine + session management.
Stage 1 scope: users / conversations / messages only.
Long-term memory tables (memories, memory_versions) are introduced in
Stage 4 — do not add them here early, per the "don't over-engineer the
first version" rule.
"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from app.config import settings
connect_args = {"check_same_thread": False} if settings.database_url.startswith("sqlite") else {}
engine = create_engine(settings.database_url, connect_args=connect_args)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
def get_db():
"""FastAPI dependency that yields a request-scoped DB session."""
db = SessionLocal()
try:
yield db
finally:
db.close()