36 lines
1.4 KiB
Python
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()
|