Files
aiagent/backend/app/models/execution_log.py
2026-01-19 00:09:36 +08:00

30 lines
1.2 KiB
Python

"""
执行日志模型
"""
from sqlalchemy import Column, String, Text, Integer, DateTime, JSON, ForeignKey, func
from sqlalchemy.dialects.mysql import CHAR
from sqlalchemy.orm import relationship
from app.core.database import Base
import uuid
class ExecutionLog(Base):
"""执行日志表"""
__tablename__ = "execution_logs"
id = Column(CHAR(36), primary_key=True, default=lambda: str(uuid.uuid4()), comment="日志ID")
execution_id = Column(CHAR(36), ForeignKey("executions.id"), nullable=False, comment="执行ID")
node_id = Column(String(100), nullable=True, comment="节点ID")
node_type = Column(String(50), nullable=True, comment="节点类型")
level = Column(String(20), nullable=False, comment="日志级别: INFO/WARN/ERROR/DEBUG")
message = Column(Text, nullable=False, comment="日志消息")
data = Column(JSON, comment="附加数据")
timestamp = Column(DateTime, default=func.now(), comment="时间戳")
duration = Column(Integer, comment="执行耗时(ms)")
# 关系
execution = relationship("Execution", backref="logs")
def __repr__(self):
return f"<ExecutionLog(id={self.id}, execution_id={self.execution_id}, level={self.level})>"