from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, declarative_base from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession import os from dotenv import load_dotenv # 加载环境变量 load_dotenv() # 数据库连接配置 DATABASE_URL = os.getenv( "DATABASE_URL", "mysql+pymysql://wqsd:wqsd@2025@rm-bp13g3ra2f59q49xs.mysql.rds.aliyuncs.com:3306/ai_knowledge?charset=utf8&connect_timeout=30&read_timeout=30&write_timeout=30" ) # 创建同步引擎和会话 engine = create_engine( DATABASE_URL, pool_size=10, max_overflow=20, pool_timeout=30, echo=False # 设为True可查看SQL日志 ) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # 声明基类 Base = declarative_base() # 获取数据库会话的依赖函数 def get_db(): db = SessionLocal() try: yield db finally: db.close()