```
feat(config): 添加RAG/Embedding配置选项 - 新增EMBEDDING_MODEL配置项,默认值为"all-MiniLM-L6-v2" - 用于支持RAG服务的嵌入模型配置 feat(database): 增强MySQL数据库初始化功能 - 实现数据库自动创建功能,若数据库不存在则自动创建 - 使用临时连接在不指定数据库的情况下执行CREATE DATABASE语句 - 支持utf8mb4字符集和排序规则设置 refactor(excel): 优化Excel表创建逻辑 - 将表创建方式从ORM模型改为原生SQL语句 - 提高异步操作的兼容性 - 增加自动时间戳字段(created_at, updated_at) feat(rag): 增强RAG服务嵌入模型错误处理 - 添加嵌入模型加载异常处理机制 - 当配置的模型加载失败时自动回退到默认模型 - 改进日志记录,提供更详细的初始化信息 ```
This commit is contained in:
@@ -72,6 +72,26 @@ class MySQLDB:
|
||||
async def init_db(self):
|
||||
"""初始化数据库,创建所有表"""
|
||||
try:
|
||||
# 先创建数据库(如果不存在)
|
||||
from sqlalchemy import text
|
||||
db_name = settings.MYSQL_DATABASE
|
||||
# 连接时不指定数据库来创建数据库
|
||||
temp_url = (
|
||||
f"mysql+aiomysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}"
|
||||
f"@{settings.MYSQL_HOST}:{settings.MYSQL_PORT}/"
|
||||
f"?charset={settings.MYSQL_CHARSET}"
|
||||
)
|
||||
from sqlalchemy.ext.asyncio import create_async_engine
|
||||
temp_engine = create_async_engine(temp_url, echo=False)
|
||||
try:
|
||||
async with temp_engine.connect() as conn:
|
||||
await conn.execute(text(f"CREATE DATABASE IF NOT EXISTS `{db_name}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"))
|
||||
await conn.commit()
|
||||
logger.info(f"MySQL 数据库 {db_name} 创建或已存在")
|
||||
finally:
|
||||
await temp_engine.dispose()
|
||||
|
||||
# 然后创建表
|
||||
async with self.async_engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
logger.info("MySQL 数据库表初始化完成")
|
||||
|
||||
Reference in New Issue
Block a user