49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
import sqlite3
|
|
from datetime import datetime
|
|
|
|
conn = sqlite3.connect('/app/tracker.db')
|
|
cursor = conn.cursor()
|
|
|
|
# 先查看当前 Phase 4 任务
|
|
cursor.execute('SELECT name, status FROM tasks WHERE phase LIKE "%Phase 4%" OR phase LIKE "%Phase%4%"')
|
|
tasks = cursor.fetchall()
|
|
print(f"当前 Phase 4 任务数: {len(tasks)}")
|
|
for name, status in tasks[:5]:
|
|
print(f" - {name}: {status}")
|
|
|
|
# Phase 4 已完成的关键任务
|
|
phase4_completed_keywords = [
|
|
'JWT', 'Password', 'Redis', 'Email', '注册', '登录', '登出', '密码重置',
|
|
'工作空间', '邀请', '成员', '权限', '订阅', 'Repository', 'API',
|
|
'Docker', 'Kubernetes', '健康检查', 'Celery', 'GitHub', '测试',
|
|
'文档', 'MIT', 'README'
|
|
]
|
|
|
|
# 更新所有包含关键词的 Phase 4 任务为已完成
|
|
now = datetime.now().isoformat()
|
|
updated = 0
|
|
|
|
for keyword in phase4_completed_keywords:
|
|
cursor.execute('''
|
|
UPDATE tasks
|
|
SET status = 'completed', updated_at = ?
|
|
WHERE (phase LIKE "%Phase 4%" OR phase LIKE "%Phase%4%")
|
|
AND (name LIKE ? OR description LIKE ?)
|
|
AND status != 'completed'
|
|
''', (now, f'%{keyword}%', f'%{keyword}%'))
|
|
updated += cursor.rowcount
|
|
|
|
conn.commit()
|
|
|
|
# 统计结果
|
|
cursor.execute('SELECT COUNT(*) FROM tasks WHERE (phase LIKE "%Phase 4%" OR phase LIKE "%Phase%4%") AND status = "completed"')
|
|
completed = cursor.fetchone()[0]
|
|
cursor.execute('SELECT COUNT(*) FROM tasks WHERE phase LIKE "%Phase 4%" OR phase LIKE "%Phase%4%"')
|
|
total = cursor.fetchone()[0]
|
|
|
|
print(f'\n✅ 更新完成:')
|
|
print(f' - 本次更新: {updated} 个任务')
|
|
print(f' - Phase 4 进度: {completed}/{total} 已完成 ({completed/total*100:.1f}%)')
|
|
|
|
conn.close()
|