TorqueWrench/backend/diagnose.py

69 lines
1.8 KiB
Python
Raw Normal View History

2026-01-24 02:54:01 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
诊断数据库和API问题
"""
import os
import sys
from database import Database
print("="*60)
print("数据库诊断")
print("="*60)
# 检查数据库文件
db_path = os.path.join(os.path.dirname(__file__), "wrench.db")
print(f"\n1. 数据库文件路径: {db_path}")
print(f" 文件存在: {os.path.exists(db_path)}")
if os.path.exists(db_path):
size = os.path.getsize(db_path)
print(f" 文件大小: {size} 字节")
# 初始化数据库
print("\n2. 初始化数据库...")
try:
db = Database(db_path)
print(" [OK] 数据库初始化成功")
except Exception as e:
print(f" [FAIL] 数据库初始化失败: {e}")
sys.exit(1)
# 检查工单数量
print("\n3. 检查工单数据...")
try:
all_orders = db.get_work_orders()
print(f" 总工单数: {len(all_orders)}")
for order in all_orders:
print(f" - {order['trace_id']} | {order['process_id']} | {order['process_name']}")
except Exception as e:
print(f" [FAIL] 查询失败: {e}")
# 测试查询
print("\n4. 测试查询 TR20260119001 + P001...")
try:
available = db.get_available_work_orders("TR20260119001", "P001")
print(f" 可用工单数: {len(available)}")
for order in available:
print(f" - {order['trace_id']} | {order['process_id']} | {order['process_name']}")
except Exception as e:
print(f" [FAIL] 查询失败: {e}")
import traceback
traceback.print_exc()
# 检查认领状态
print("\n5. 检查认领状态...")
try:
claimed = db.get_claimed_order("TR20260119001", "P001")
if claimed:
print(f" [WARN] 工单已被认领: {claimed}")
else:
print(" [OK] 工单未被认领")
except Exception as e:
print(f" [FAIL] 检查失败: {e}")
print("\n" + "="*60)
print("诊断完成")
print("="*60)