Files
ocean/backend/scripts/migrate_string_columns.py

36 lines
1.4 KiB
Python

#!/usr/bin/env python3
"""
将 projects 表中「质保期截止日」「中标合同金额」「工程款拨付方式」改为字符串类型。
用法:cd backend && PYTHONPATH=src python3 scripts/migrate_string_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
def main():
with get_connection() as conn:
cur = conn.cursor()
try:
cur.execute(
"ALTER TABLE projects "
"MODIFY COLUMN bid_contract_amount varchar(512) DEFAULT NULL COMMENT '中标合同金额(万元,字符串存储)', "
"MODIFY COLUMN warranty_end_date varchar(256) DEFAULT NULL COMMENT '质保期截止日(字符串存储)', "
"MODIFY COLUMN payment_method varchar(2048) DEFAULT NULL COMMENT '工程款拨付方式', "
"MODIFY COLUMN is_adjusted varchar(512) DEFAULT NULL COMMENT '是否调整:是/否'"
)
conn.commit()
print("已将 bid_contract_amount、warranty_end_date、payment_method、is_adjusted 改为目标类型/长度。")
except Exception as e:
print(f"迁移失败: {e}")
raise
finally:
cur.close()
if __name__ == "__main__":
main()