"""工单 SQL 逐条执行记录 — 支持执行进度透明展示。 每条 SQL 单独记录执行状态、耗时、影响行数、错误信息。 """ from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey, func from sqlalchemy.orm import relationship from app.core.database import Base class TicketSqlItem(Base): __tablename__ = "ticket_sql_items" id = Column(Integer, primary_key=True, autoincrement=True) ticket_id = Column(Integer, ForeignKey("tickets.id"), nullable=False, index=True) seq = Column(Integer, nullable=False, comment="SQL 顺序号,从 1 开始") sql_text = Column(Text, nullable=False, comment="单条 SQL 文本") sql_type = Column(String(20), nullable=True, comment="SQL 类型: DDL/DML/DQL/SET 等") status = Column(String(20), default="pending", comment="pending/running/success/failed/skipped") affected_rows = Column(Integer, default=0) duration_ms = Column(Integer, default=0, comment="执行耗时(毫秒)") error_message = Column(Text, nullable=True) started_at = Column(DateTime, nullable=True) finished_at = Column(DateTime, nullable=True) created_at = Column(DateTime, server_default=func.now()) ticket = relationship("Ticket", backref="sql_items")