123456789101112131415161718192021222324252627282930313233343536 |
- 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()
|