大改,未验证
This commit is contained in:
@@ -20,7 +20,7 @@ from src.utils.helpers import setup_logging
|
||||
from src.core.database import db_manager
|
||||
from src.core.models import (
|
||||
Base, WorkOrder, KnowledgeEntry, Conversation, Analytics, Alert, VehicleData,
|
||||
WorkOrderSuggestion, WorkOrderProcessHistory, User
|
||||
WorkOrderSuggestion, WorkOrderProcessHistory, User, ChatSession
|
||||
)
|
||||
|
||||
class DatabaseInitializer:
|
||||
@@ -197,7 +197,8 @@ class DatabaseInitializer:
|
||||
self._migrate_workorder_dispatch_fields,
|
||||
self._migrate_workorder_process_history_table,
|
||||
self._migrate_analytics_enhancements,
|
||||
self._migrate_system_optimization_fields
|
||||
self._migrate_system_optimization_fields,
|
||||
self._migrate_chat_sessions_table,
|
||||
]
|
||||
|
||||
success_count = 0
|
||||
@@ -445,6 +446,37 @@ class DatabaseInitializer:
|
||||
|
||||
return success
|
||||
|
||||
def _migrate_chat_sessions_table(self) -> bool:
|
||||
"""迁移:创建 chat_sessions 表并为 conversations 添加 session_id 字段"""
|
||||
print(" 检查会话管理表...")
|
||||
|
||||
try:
|
||||
inspector = inspect(db_manager.engine)
|
||||
|
||||
# 1. 创建 chat_sessions 表
|
||||
if 'chat_sessions' not in inspector.get_table_names():
|
||||
print(" 创建 chat_sessions 表...")
|
||||
ChatSession.__table__.create(db_manager.engine, checkfirst=True)
|
||||
print(" chat_sessions 表创建成功")
|
||||
else:
|
||||
print(" chat_sessions 表已存在")
|
||||
|
||||
# 2. 为 conversations 表添加 session_id 字段
|
||||
if not self._column_exists('conversations', 'session_id'):
|
||||
print(" 添加 conversations.session_id 字段...")
|
||||
self._add_table_columns('conversations', [
|
||||
('session_id', 'VARCHAR(100)')
|
||||
])
|
||||
print(" session_id 字段添加成功")
|
||||
else:
|
||||
print(" conversations.session_id 字段已存在")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f" 会话管理表迁移失败: {e}")
|
||||
return False
|
||||
|
||||
def _add_table_columns(self, table_name: str, fields: List[tuple]) -> bool:
|
||||
"""为表添加字段"""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user