import os from sqlalchemy import create_engine from sqlalchemy.orm import DeclarativeBase, Session, sessionmaker def _build_database_url() -> str: host = os.environ.get("POSTGRES_HOST", "postgres") port = os.environ.get("POSTGRES_PORT", "5432") user = os.environ.get("POSTGRES_USER", "postgres") password = os.environ.get("POSTGRES_PASSWORD", "postgres") db = os.environ.get("APP_DB_NAME", "mem0_app") return f"postgresql+psycopg://{user}:{password}@{host}:{port}/{db}" engine = create_engine(_build_database_url(), pool_pre_ping=True) SessionLocal = sessionmaker(bind=engine, autoflush=False, expire_on_commit=False) class Base(DeclarativeBase): pass def get_db(): """FastAPI dependency that yields a SQLAlchemy session.""" db: Session = SessionLocal() try: yield db finally: db.close()