- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
93 lines
4.5 KiB
SQL
93 lines
4.5 KiB
SQL
-- 手动创建training模块相关表的SQL脚本
|
||
-- 用于解决Alembic迁移失败的备选方案
|
||
|
||
-- 1. 创建training_scenes表
|
||
CREATE TABLE IF NOT EXISTS training_scenes (
|
||
id INTEGER NOT NULL AUTO_INCREMENT,
|
||
name VARCHAR(100) NOT NULL COMMENT '场景名称',
|
||
description TEXT COMMENT '场景描述',
|
||
category VARCHAR(50) NOT NULL COMMENT '场景分类',
|
||
ai_config JSON COMMENT 'AI配置(如Coze Bot ID等)',
|
||
prompt_template TEXT COMMENT '提示词模板',
|
||
evaluation_criteria JSON COMMENT '评估标准',
|
||
status ENUM('DRAFT', 'ACTIVE', 'INACTIVE') NOT NULL DEFAULT 'DRAFT' COMMENT '场景状态',
|
||
is_public BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否公开',
|
||
required_level INTEGER COMMENT '所需用户等级',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||
deleted_at DATETIME,
|
||
created_by INTEGER,
|
||
updated_by INTEGER,
|
||
PRIMARY KEY (id),
|
||
INDEX ix_training_scenes_id (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练场景表';
|
||
|
||
-- 2. 创建training_sessions表
|
||
CREATE TABLE IF NOT EXISTS training_sessions (
|
||
id INTEGER NOT NULL AUTO_INCREMENT,
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
scene_id INTEGER NOT NULL COMMENT '场景ID',
|
||
coze_conversation_id VARCHAR(100) COMMENT 'Coze会话ID',
|
||
start_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开始时间',
|
||
end_time DATETIME COMMENT '结束时间',
|
||
duration_seconds INTEGER COMMENT '持续时长(秒)',
|
||
status ENUM('CREATED', 'IN_PROGRESS', 'COMPLETED', 'CANCELLED', 'ERROR') NOT NULL DEFAULT 'CREATED' COMMENT '会话状态',
|
||
session_config JSON COMMENT '会话配置',
|
||
total_score FLOAT COMMENT '总分',
|
||
evaluation_result JSON COMMENT '评估结果详情',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
created_by INTEGER,
|
||
updated_by INTEGER,
|
||
PRIMARY KEY (id),
|
||
INDEX ix_training_sessions_id (id),
|
||
INDEX ix_training_sessions_user_id (user_id),
|
||
FOREIGN KEY (scene_id) REFERENCES training_scenes(id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练会话表';
|
||
|
||
-- 3. 创建training_messages表
|
||
CREATE TABLE IF NOT EXISTS training_messages (
|
||
id INTEGER NOT NULL AUTO_INCREMENT,
|
||
session_id INTEGER NOT NULL COMMENT '会话ID',
|
||
role ENUM('USER', 'ASSISTANT', 'SYSTEM') NOT NULL COMMENT '消息角色',
|
||
type ENUM('TEXT', 'VOICE', 'SYSTEM') NOT NULL COMMENT '消息类型',
|
||
content TEXT NOT NULL COMMENT '消息内容',
|
||
voice_url VARCHAR(500) COMMENT '语音文件URL',
|
||
voice_duration FLOAT COMMENT '语音时长(秒)',
|
||
message_metadata JSON COMMENT '消息元数据',
|
||
coze_message_id VARCHAR(100) COMMENT 'Coze消息ID',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
PRIMARY KEY (id),
|
||
INDEX ix_training_messages_id (id),
|
||
FOREIGN KEY (session_id) REFERENCES training_sessions(id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练消息表';
|
||
|
||
-- 4. 创建training_reports表
|
||
CREATE TABLE IF NOT EXISTS training_reports (
|
||
id INTEGER NOT NULL AUTO_INCREMENT,
|
||
session_id INTEGER NOT NULL COMMENT '会话ID',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
overall_score FLOAT NOT NULL COMMENT '总体得分',
|
||
dimension_scores JSON NOT NULL COMMENT '各维度得分',
|
||
strengths JSON NOT NULL COMMENT '优势点',
|
||
weaknesses JSON NOT NULL COMMENT '待改进点',
|
||
suggestions JSON NOT NULL COMMENT '改进建议',
|
||
detailed_analysis TEXT COMMENT '详细分析',
|
||
transcript TEXT COMMENT '对话文本记录',
|
||
statistics JSON COMMENT '统计数据',
|
||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
created_by INTEGER,
|
||
updated_by INTEGER,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY (session_id),
|
||
INDEX ix_training_reports_id (id),
|
||
INDEX ix_training_reports_user_id (user_id),
|
||
FOREIGN KEY (session_id) REFERENCES training_sessions(id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='陪练报告表';
|
||
|
||
-- 5. 更新Alembic版本表,标记迁移已完成
|
||
INSERT INTO alembic_version (version_num) VALUES ('9245f8845fe1') ON DUPLICATE KEY UPDATE version_num = '9245f8845fe1';
|