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

141 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 立即执行评分标准JSON迁移
## ✅ 状态确认
- **代码修复**: 100% 完成 ✅
- **错误修复**: TypeError已解决 ✅
- **文件验证**: 所有文件无错误 ✅
- **迁移脚本**: 已准备就绪 ✅
## 🚀 执行步骤 (约30分钟)
### Step 1: 数据库迁移 (15分钟)
```powershell
# 在 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分钟)
```sql
-- 验证迁移成功
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数据结构
```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}
}
```
## 🛠️ 应急处理
### 如果迁移失败
```sql
-- 回滚到迁移前状态
DROP TABLE ak_training_projects;
ALTER TABLE ak_training_projects_backup_20250611 RENAME TO ak_training_projects;
```
### 如果前端有问题
1. 检查浏览器控制台错误
2. 验证Vue DevTools中的组件状态
3. 确认API请求和响应数据格式
## 📞 技术支持
### 调试命令
```javascript
// 浏览器控制台
console.log('getDifficultyClass function:', this.getDifficultyClass);
console.log('Selected project:', this.selectedProject);
```
```sql
-- 数据库调试
SELECT column_name, data_type FROM information_schema.columns
WHERE table_name = 'ak_training_projects' AND column_name = 'scoring_criteria';
```
## ✅ 完成确认
迁移成功后,您应该看到:
- [x] 数据库迁移脚本执行成功,无错误
- [x] 所有项目都有有效的JSON格式评分标准
- [x] 前端页面正常加载和显示
- [x] 新建项目使用JSON结构保存
- [x] 难度等级样式正确应用
---
**⚡ 现在就可以开始执行迁移了!所有准备工作已完成!**
**项目状态**: 🟢 Ready for Production
**预计完成时间**: 30分钟
**风险等级**: 🟢 低风险(有完整备份和回滚方案)