""" AIFlow 数据库连接与Session管理 """ from sqlalchemy import create_engine, event from sqlalchemy.orm import sessionmaker, declarative_base from sqlalchemy.pool import QueuePool from .config import DATABASE_URL engine = create_engine( DATABASE_URL, poolclass=QueuePool, pool_size=20, max_overflow=40, pool_pre_ping=True, pool_recycle=3600, echo=False, ) # 为日志表禁止DELETE操作添加触发器检查 # 通过数据库层确保operation_logs, audit_logs, token_usage_logs不可删除 SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() def get_db(): """获取数据库会话的依赖注入""" db = SessionLocal() try: yield db finally: db.close()