编排完善第 1 波骨架:定时任务加触发方式(trigger_kind:cron | event,trigger 写事件种类和对象)两列与迁移,存量行都是 cron(docs/design/orchestration-round/00-总方案.md §4)

This commit is contained in:
ThearchyHelios
2026-10-18 15:25:13 +08:00
parent 153e48a568
commit 3f3e39e4d5
2 changed files with 8 additions and 0 deletions
+3
View File
@@ -245,6 +245,9 @@ _COLUMN_MIGRATIONS: list[tuple[str, str, str]] = [
("schedules", "target_kind", "VARCHAR(20) DEFAULT 'workflow'"),
("schedules", "target_id", "VARCHAR(32)"),
("schedule_fires", "eval_run_id", "VARCHAR(32)"),
# 编排完善(docs/design/orchestration-round/00-总方案.md §4):定时任务的触发方式。存量行都是 cron
("schedules", "trigger_kind", "VARCHAR(20) DEFAULT 'cron'"),
("schedules", "trigger", "JSON"),
# 第 2 波:服务账号(users.kind);剖析上传表格源时的快照
("users", "kind", "VARCHAR(20) DEFAULT 'person'"),
("catalog_profile_tasks", "snapshot_id", "VARCHAR(32)"),
+5
View File
@@ -988,6 +988,11 @@ class Schedule(Base, TimestampMixin):
target_kind: Mapped[str] = mapped_column(String(20), default="workflow")
# 目标的 id:workflow 时同 workflow_id;其余两种是题集 id、数据源 id
target_id: Mapped[str | None] = mapped_column(String(32), default=None, index=True)
# 怎么触发(docs/design/orchestration-round/00-总方案.md §4):cron 按 cron 表达式到点触发(加这一列之前的都是);
# event 由事件触发,trigger 写事件种类和对象(table.version / workflow.finished / source.changed,见 scheduler 的说明)。
# event 时 cron 存空串(老表的非空约束),下一次触发时间为空
trigger_kind: Mapped[str] = mapped_column(String(20), default="cron")
trigger: Mapped[dict[str, Any]] = mapped_column(default=dict)
# 非空(老表的约束,只加不改的迁移放宽不了):目标不是工作流时存空串,读写都经 scheduler/service 里的一处封装
workflow_id: Mapped[str] = mapped_column(String(32), index=True)
# 保存时的工作流名。工作流还在时接口给它现在的名字,删掉之后才用这一份