feat: 初始化考培练系统项目
- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
92
backend/migrations/manual_training_tables.sql
Normal file
92
backend/migrations/manual_training_tables.sql
Normal file
@@ -0,0 +1,92 @@
|
||||
-- 手动创建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';
|
||||
Reference in New Issue
Block a user