"""迁移 025: PPT 会话表新增预览与质量检查字段。""" import logging from sqlalchemy import text logger = logging.getLogger(__name__) def migrate(): """为 insurance_ppt_sessions 表添加预览相关字段。""" from insurance.db.compat import db columns = { "slides_json_path": "VARCHAR(500) DEFAULT NULL", "quality_report_json": "TEXT DEFAULT NULL", "preview_status": "VARCHAR(20) NOT NULL DEFAULT 'none'", "deck_contract_path": "VARCHAR(500) DEFAULT NULL", "versions_json": "TEXT DEFAULT NULL", } for col_name, col_def in columns.items(): exists = db.session.execute(text( "SELECT COUNT(*) FROM information_schema.columns " "WHERE table_name = 'insurance_ppt_sessions' AND column_name = :col" ), {"col": col_name}).scalar() if not exists: db.session.execute(text( f"ALTER TABLE insurance_ppt_sessions ADD COLUMN {col_name} {col_def}" )) logger.info("[migrate_025] 已添加字段 %s", col_name) else: logger.info("[migrate_025] 字段 %s 已存在,跳过", col_name) db.session.commit() logger.info("[migrate_025] 迁移完成")