dashboard/backend/alter_table.py
2025-06-09 14:59:40 +08:00

83 lines
2.9 KiB
Python
Raw 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.

import sqlite3
import os
import logging
import json
# 设置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# 数据库路径
DB_DIR = "data"
DB_PATH = os.path.join(DB_DIR, "app.db")
def check_and_alter_table():
# 检查数据库文件是否存在
if not os.path.exists(DB_PATH):
logger.error(f"数据库文件 {DB_PATH} 不存在")
return
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# 检查talents表是否存在idcode字段
cursor.execute("PRAGMA table_info(talents)")
columns = [column[1] for column in cursor.fetchall()]
if 'idcode' not in columns:
logger.info("talents表中添加idcode字段")
cursor.execute("ALTER TABLE talents ADD COLUMN idcode TEXT")
conn.commit()
else:
logger.info("talents表已包含idcode字段无需修改")
# 检查talents表是否存在educationBackground字段
if 'educationBackground' not in columns:
logger.info("talents表中添加educationBackground字段")
cursor.execute("ALTER TABLE talents ADD COLUMN educationBackground TEXT")
conn.commit()
else:
logger.info("talents表已包含educationBackground字段无需修改")
# 检查labs表是否存在idcode字段
cursor.execute("PRAGMA table_info(labs)")
labs_columns = [column[1] for column in cursor.fetchall()]
if 'idcode' not in labs_columns:
logger.info("labs表中添加idcode字段")
cursor.execute("ALTER TABLE labs ADD COLUMN idcode TEXT")
conn.commit()
else:
logger.info("labs表已包含idcode字段无需修改")
# 检查dimensions表是否存在sub_dimensions字段
cursor.execute("PRAGMA table_info(dimensions)")
columns = [column[1] for column in cursor.fetchall()]
if 'sub_dimensions' not in columns:
logger.info("dimensions表中添加sub_dimensions字段")
cursor.execute("ALTER TABLE dimensions ADD COLUMN sub_dimensions JSON")
conn.commit()
else:
logger.info("dimensions表已包含sub_dimensions字段无需修改")
# 检查dimensions表是否存在parent_id字段
if 'parent_id' not in columns:
logger.info("dimensions表中添加parent_id字段")
cursor.execute("ALTER TABLE dimensions ADD COLUMN parent_id INTEGER REFERENCES dimensions(id)")
conn.commit()
else:
logger.info("dimensions表已包含parent_id字段无需修改")
# 检查labs表是否存在sub_dimension_evaluations字段
if 'sub_dimension_evaluations' not in labs_columns:
logger.info("labs表中添加sub_dimension_evaluations字段")
cursor.execute("ALTER TABLE labs ADD COLUMN sub_dimension_evaluations TEXT")
conn.commit()
else:
logger.info("labs表已包含sub_dimension_evaluations字段无需修改")
conn.close()
if __name__ == "__main__":
check_and_alter_table()