4.9 KiB
4.9 KiB
🎯 评分标准JSON迁移 - 最终执行指南
✅ 已完成的工作总结
1. 代码层面修复 (100% 完成)
- ✅ 修复导入错误: 添加了缺失的
getDifficultyClass函数 - ✅ 前端代码更新: 所有相关页面已支持新JSON结构
- ✅ 数据库字段适配: 修正了字段名称 (
is_activevsstatus) - ✅ 向后兼容: 代码同时支持新旧数据格式
2. 文件更新清单
| 文件 | 状态 | 主要更改 |
|---|---|---|
pages/sport/types.uts |
✅ 已更新 | 添加 getDifficultyClass 函数 |
pages/sport/teacher/project-create.uvue |
✅ 已更新 | JSON结构保存,数据库字段适配 |
pages/sport/teacher/project-edit.uvue |
✅ 已更新 | JSON结构加载/保存,向后兼容 |
pages/sport/teacher/project-detail.uvue |
✅ 已更新 | JSON结构显示 |
pages/sport/student/assignment-detail.uvue |
✅ 已更新 | JSON结构解析和显示 |
pages/sport/teacher/create-assignment.uvue |
✅ 已更新 | 数据库过滤器修正 |
3. 数据库迁移脚本
- ✅
migrate_scoring_criteria_simple.sql- 简化版迁移脚本 - ✅
SCORING_CRITERIA_TESTING_PLAN.md- 完整测试计划
🚀 立即执行步骤
Step 1: 数据库迁移 (关键步骤)
# 在 PowerShell 中执行
cd h:\blews\akmon
# 连接数据库并执行迁移
psql -h [host] -U [username] -d [database] -f migrate_scoring_criteria_simple.sql
# 示例:
# psql -h localhost -U postgres -d akmon_db -f migrate_scoring_criteria_simple.sql
Step 2: 验证迁移结果
-- 检查迁移是否成功
SELECT
COUNT(*) as total_projects,
COUNT(scoring_criteria) as with_criteria,
COUNT(CASE WHEN scoring_criteria ? 'criteria' THEN 1 END) as valid_json
FROM ak_training_projects;
-- 查看示例数据
SELECT
title,
scoring_criteria->'criteria' as criteria
FROM ak_training_projects
LIMIT 3;
Step 3: 前端功能测试
按照 SCORING_CRITERIA_TESTING_PLAN.md 中的测试清单逐项验证:
-
教师端测试
- 创建新项目 → 验证评分标准保存
- 编辑现有项目 → 验证数据加载和更新
- 查看项目详情 → 验证显示正确
-
学生端测试
- 查看作业详情 → 验证评分标准显示
📊 新JSON数据结构
完整结构示例
{
"criteria": [
{
"min_score": 90,
"max_score": 100,
"description": "优秀:表现卓越,超出预期"
},
{
"min_score": 80,
"max_score": 89,
"description": "良好:表现良好,符合要求"
},
{
"min_score": 70,
"max_score": 79,
"description": "及格:基本达标,有待改进"
},
{
"min_score": 0,
"max_score": 69,
"description": "不及格:未达标准,需要重练"
}
],
"scoring_method": "comprehensive",
"weight_distribution": {
"technique": 0.4,
"effort": 0.3,
"improvement": 0.3
}
}
数据库字段映射
| 前端字段 | 数据库字段 | 类型 | 说明 |
|---|---|---|---|
name |
title |
VARCHAR(255) | 项目名称 |
category |
sport_type |
VARCHAR(100) | 运动类型 |
difficulty |
difficulty_level |
VARCHAR(50) | 难度级别 |
status |
is_active |
BOOLEAN | 激活状态 |
🔍 迁移优势验证
解决的核心问题
- 数据丢失: 原来
min_score和max_score信息丢失 → 现在完整保存 - 数据结构: 原来扁平字符串 → 现在结构化JSON
- 查询效率: 原来字符串搜索 → 现在JSON索引查询
- 扩展性: 原来固定格式 → 现在灵活可扩展
技术改进
- ✅ 使用 JSONB 数据类型提供高效存储和查询
- ✅ 创建 GIN 索引优化JSON查询性能
- ✅ 向后兼容确保无缝升级
- ✅ 默认数据结构保证数据完整性
⚠️ 注意事项
数据安全
- ✅ 自动备份表已创建 (
ak_training_projects_backup_20250611) - ✅ 迁移脚本包含验证步骤
- ✅ 支持回滚操作
性能考虑
- ✅ 已创建JSON索引优化查询
- ✅ 前端代码优化减少不必要的数据转换
- ✅ 缓存友好的数据结构
用户体验
- ✅ 无缝升级,用户无感知迁移
- ✅ 保持现有界面和操作流程
- ✅ 新功能逐步启用
🎯 成功标准
迁移完成后应该达到:
- ✅ 所有项目都有有效的JSON格式评分标准
- ✅ 前端页面正常显示和操作
- ✅ 数据库查询性能良好
- ✅ 新建项目使用新JSON结构
- ✅ 旧数据正常兼容显示
📞 支持和帮助
如果迁移过程中遇到问题:
- 检查错误日志: 查看数据库和应用日志
- 验证数据: 运行提供的SQL验证脚本
- 测试功能: 按照测试计划逐项验证
- 回滚方案: 如需要可从备份表恢复
状态: 🟢 代码完成,待数据库迁移
更新时间: 2025-06-11
版本: v1.0 最终版