#!/usr/bin/env python3 """ 为 projects 表增加四个日期原文列(若不存在)。 用法:cd backend && PYTHONPATH=src python3 scripts/migrate_add_date_str_columns.py """ import sys from pathlib import Path _backend = Path(__file__).resolve().parent.parent if str(_backend) not in sys.path: sys.path.insert(0, str(_backend)) from src.database import get_connection ALTER_SQL = """ ALTER TABLE projects ADD COLUMN sign_date_str varchar(128) DEFAULT NULL COMMENT '签订日期原文:日期正常或导入字符串' AFTER sign_date, ADD COLUMN start_date_str varchar(128) DEFAULT NULL COMMENT '开工日期原文' AFTER start_date, ADD COLUMN planned_completion_date_str varchar(128) DEFAULT NULL COMMENT '计划竣工日期原文' AFTER planned_completion_date, ADD COLUMN actual_completion_date_str varchar(128) DEFAULT NULL COMMENT '实际竣工日期原文' AFTER actual_completion_date; """ def main(): with get_connection() as conn: cur = conn.cursor() try: cur.execute(ALTER_SQL) conn.commit() print("已为 projects 表添加 sign_date_str、start_date_str、planned_completion_date_str、actual_completion_date_str 列。") except Exception as e: if "Duplicate column name" in str(e): print("列已存在,无需迁移。") else: raise finally: cur.close() if __name__ == "__main__": main()