Files
akmon/doc_eldercare/EXECUTE_NOW.md
2026-01-20 08:04:15 +08:00

4.0 KiB
Raw Blame History

🎯 立即执行评分标准JSON迁移

状态确认

  • 代码修复: 100% 完成
  • 错误修复: TypeError已解决
  • 文件验证: 所有文件无错误
  • 迁移脚本: 已准备就绪

🚀 执行步骤 (约30分钟)

Step 1: 数据库迁移 (15分钟)

# 在 PowerShell 中执行,当前目录已在 h:\blews\akmon
psql -h [数据库主机] -U [用户名] -d [数据库名] -f migrate_scoring_criteria_simple.sql

# 常见示例:
# psql -h localhost -U postgres -d akmon_dev -f migrate_scoring_criteria_simple.sql
# 或者使用 Supabase
# psql "postgresql://[user]:[pass]@[host]:5432/[db]" -f migrate_scoring_criteria_simple.sql

迁移内容:

  • 创建备份表 ak_training_projects_backup_20250611
  • 转换 scoring_criteria 字段为 JSONB 格式
  • 添加默认JSON结构给缺失数据的项目
  • 创建性能优化索引
  • 验证迁移结果

Step 2: 功能验证 (15分钟)

2.1 前端测试 (10分钟)

  1. 教师端

    访问: /pages/sport/teacher/project-create
    操作: 创建新项目,添加评分标准
    验证: 保存成功数据库包含JSON格式数据
    
    访问: /pages/sport/teacher/create-assignment  
    操作: 选择训练项目
    验证: 项目列表加载,难度等级样式正确显示
    
  2. 学生端

    访问: /pages/sport/student/assignment-detail
    操作: 查看作业详情
    验证: 评分标准正确显示
    

2.2 数据验证 (5分钟)

-- 验证迁移成功
SELECT 
    COUNT(*) as total_projects,
    COUNT(CASE WHEN scoring_criteria ? 'criteria' THEN 1 END) as with_json_criteria,
    COUNT(CASE WHEN jsonb_typeof(scoring_criteria->'criteria') = 'array' THEN 1 END) as valid_structure
FROM ak_training_projects;

-- 查看示例数据
SELECT title, scoring_criteria->'criteria' as criteria 
FROM ak_training_projects 
WHERE scoring_criteria IS NOT NULL 
LIMIT 3;

📊 预期结果

数据库层面

总项目数: N
有JSON评分标准的项目: N  
有效JSON结构的项目: N
✅ 迁移成功率: 100%

前端层面

  • 项目创建页面:评分标准输入和保存正常
  • 项目编辑页面:数据加载和更新正常
  • 作业创建页面:项目选择和难度显示正常
  • 作业详情页面:评分标准显示正常

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}
}

🛠️ 应急处理

如果迁移失败

-- 回滚到迁移前状态
DROP TABLE ak_training_projects;
ALTER TABLE ak_training_projects_backup_20250611 RENAME TO ak_training_projects;

如果前端有问题

  1. 检查浏览器控制台错误
  2. 验证Vue DevTools中的组件状态
  3. 确认API请求和响应数据格式

📞 技术支持

调试命令

// 浏览器控制台
console.log('getDifficultyClass function:', this.getDifficultyClass);
console.log('Selected project:', this.selectedProject);
-- 数据库调试
SELECT column_name, data_type FROM information_schema.columns 
WHERE table_name = 'ak_training_projects' AND column_name = 'scoring_criteria';

完成确认

迁移成功后,您应该看到:

  • 数据库迁移脚本执行成功,无错误
  • 所有项目都有有效的JSON格式评分标准
  • 前端页面正常加载和显示
  • 新建项目使用JSON结构保存
  • 难度等级样式正确应用

现在就可以开始执行迁移了!所有准备工作已完成!

项目状态: 🟢 Ready for Production 预计完成时间: 30分钟
风险等级: 🟢 低风险(有完整备份和回滚方案)