• 新增增强版PDF解析器,基于ChatGPT5策略使用文本层解析 • 实现混合PDF拆分器,优先文本层解析,OCR作为备份 • 添加数学符号选项修复功能,解决选择题空选项问题 • 性能提升:0.01秒vs29秒(2900倍),22+题目vs6题目(3.5倍) • 更新前端拆分界面,增加错误处理和用户体验优化 • 扩展数据库架构支持OCR相关字段 • 统一前后端配置管理,修复硬编码URL问题 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
数据库迁移脚本 - 添加PDF拆题相关字段
|
|
"""
|
|
|
|
import sqlite3
|
|
import os
|
|
|
|
def migrate_database():
|
|
"""迁移数据库,添加新字段"""
|
|
db_path = "wordmaster.db"
|
|
|
|
if not os.path.exists(db_path):
|
|
print("❌ 数据库文件不存在")
|
|
return False
|
|
|
|
try:
|
|
conn = sqlite3.connect(db_path)
|
|
cursor = conn.cursor()
|
|
|
|
print("🔄 开始数据库迁移...")
|
|
|
|
# 检查是否已经存在新字段
|
|
cursor.execute("PRAGMA table_info(questions)")
|
|
columns = [column[1] for column in cursor.fetchall()]
|
|
|
|
new_fields = [
|
|
('page_spans', 'JSON'),
|
|
('source_text', 'TEXT'),
|
|
('images', 'JSON'),
|
|
('formula', 'JSON'),
|
|
('score', 'REAL'),
|
|
('question_number', 'VARCHAR'),
|
|
('auto_extracted', 'BOOLEAN DEFAULT FALSE')
|
|
]
|
|
|
|
# 添加缺失的字段
|
|
for field_name, field_type in new_fields:
|
|
if field_name not in columns:
|
|
sql = f"ALTER TABLE questions ADD COLUMN {field_name} {field_type}"
|
|
print(f" 添加字段: {field_name}")
|
|
cursor.execute(sql)
|
|
else:
|
|
print(f" 字段已存在: {field_name}")
|
|
|
|
conn.commit()
|
|
print("✅ 数据库迁移完成")
|
|
|
|
# 验证新结构
|
|
cursor.execute("PRAGMA table_info(questions)")
|
|
new_columns = [column[1] for column in cursor.fetchall()]
|
|
print(f"📊 当前字段数量: {len(new_columns)}")
|
|
|
|
return True
|
|
|
|
except Exception as e:
|
|
print(f"❌ 迁移失败: {e}")
|
|
return False
|
|
finally:
|
|
if 'conn' in locals():
|
|
conn.close()
|
|
|
|
if __name__ == "__main__":
|
|
success = migrate_database()
|
|
if success:
|
|
print("\n🎉 数据库迁移成功完成!")
|
|
else:
|
|
print("\n💔 数据库迁移失败!") |