refactor: 清理不需要的代码文件,添加.gitignore,优化项目结构
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
TSP助手数据库初始化脚本 - 包含所有数据库操作
|
||||
@@ -73,7 +73,7 @@ def migrate_database():
|
||||
is_mysql = 'mysql' in str(db_url)
|
||||
is_sqlite = 'sqlite' in str(db_url)
|
||||
|
||||
print(" 📝 检查知识库验证字段...")
|
||||
print(" 📝 检查知识库验证字段与预警字段...")
|
||||
|
||||
# 检查is_verified字段是否存在
|
||||
if is_mysql:
|
||||
@@ -152,6 +152,31 @@ def migrate_database():
|
||||
print(" ✅ verified_at字段添加成功")
|
||||
else:
|
||||
print(" ✅ verified_at字段已存在")
|
||||
|
||||
# 检查alerts.severity字段是否存在
|
||||
if is_mysql:
|
||||
result = session.execute(text("""
|
||||
SELECT COUNT(*) as count
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'alerts'
|
||||
AND COLUMN_NAME = 'severity'
|
||||
""")).fetchone()
|
||||
else: # SQLite
|
||||
result = session.execute(text("""
|
||||
SELECT COUNT(*) as count
|
||||
FROM pragma_table_info('alerts')
|
||||
WHERE name = 'severity'
|
||||
""")).fetchone()
|
||||
if result.count == 0:
|
||||
print(" ➕ 添加alerts.severity字段...")
|
||||
if is_mysql:
|
||||
session.execute(text("ALTER TABLE alerts ADD COLUMN severity VARCHAR(20) DEFAULT 'medium'"))
|
||||
else:
|
||||
session.execute(text("ALTER TABLE alerts ADD COLUMN severity VARCHAR(20) DEFAULT 'medium'"))
|
||||
print(" ✅ alerts.severity 字段添加成功")
|
||||
else:
|
||||
print(" ✅ alerts.severity 字段已存在")
|
||||
|
||||
# 检查车辆数据表是否存在
|
||||
if is_mysql:
|
||||
@@ -183,6 +208,46 @@ def migrate_database():
|
||||
|
||||
return True
|
||||
|
||||
def reset_database(force: bool = False) -> bool:
|
||||
"""重置数据库:删除并重建所有表,再插入初始数据"""
|
||||
print("=" * 50)
|
||||
print("TSP助手数据库重置")
|
||||
print("=" * 50)
|
||||
|
||||
try:
|
||||
# 可选确认
|
||||
if not force:
|
||||
try:
|
||||
confirm = input("⚠️ 警告:此操作将删除所有数据!确定要继续吗?(y/N): ")
|
||||
if confirm.lower() != 'y':
|
||||
print("操作已取消")
|
||||
return False
|
||||
except Exception:
|
||||
# 非交互环境下默认取消,建议调用方传入 force=True
|
||||
print("非交互环境未传入 force=True,已取消")
|
||||
return False
|
||||
|
||||
# 删除所有表
|
||||
Base.metadata.drop_all(bind=db_manager.engine)
|
||||
print("✓ 数据库表删除成功")
|
||||
|
||||
# 重新创建所有表
|
||||
Base.metadata.create_all(bind=db_manager.engine)
|
||||
print("✓ 数据库表重新创建成功")
|
||||
|
||||
# 迁移补齐新增字段
|
||||
migrate_database()
|
||||
|
||||
# 插入初始数据
|
||||
insert_initial_data()
|
||||
|
||||
print("✓ 数据库重置完成")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ 数据库重置失败: {e}")
|
||||
return False
|
||||
|
||||
def insert_initial_data():
|
||||
"""插入初始数据"""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user