Files
ocean/backend/scripts/migrate_add_date_str_columns.py

40 lines
1.4 KiB
Python

#!/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()