Files
pigx/db/migration/20261014_flow_first_batch.sql
T
PIGCLOUD 085235710b feat(flow): 持久化流程草稿提醒与可靠回调
(cherry picked from commit f6871bee7c5cddaaa5650a284ac3cc3fec16dd18)
2026-11-03 14:55:15 +08:00

28 lines
2.0 KiB
SQL

-- 第一批持久化能力:三张业务表。已安装旧五表版本时,建表后另执行 20261014_flow_merge_tables.sql。
-- 升级前备份并停写,先执行 DDL 再部署应用;不自动迁移运行中的任务。
CREATE TABLE IF NOT EXISTS flow_draft (
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, user_id bigint NOT NULL,
kind varchar(16) NOT NULL, flow_id varchar(64) NOT NULL DEFAULT '', title varchar(200) NOT NULL,
payload longtext NOT NULL, revision bigint NOT NULL, updated_at timestamp(3) NOT NULL,
PRIMARY KEY(id), KEY idx_draft_owner(tenant_id,user_id,kind,updated_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS flow_notice (
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, user_id varchar(64) NOT NULL,
event_key varchar(180) NOT NULL, kind varchar(16) NOT NULL, title varchar(200) NOT NULL,
task_id varchar(64) NOT NULL, instance_id varchar(64) NOT NULL,
created_at timestamp(3) NOT NULL, read_at timestamp(3) NULL,
status varchar(16) NOT NULL DEFAULT 'SENT', scheduled_at timestamp(3) NULL, sent_at timestamp(3) NULL,
reminder_key varchar(64) NULL,
PRIMARY KEY(id), UNIQUE KEY uk_notice_event(tenant_id,user_id,event_key), KEY idx_notice_owner(tenant_id,user_id,created_at),
UNIQUE KEY uk_notice_reminder(tenant_id,reminder_key), KEY idx_notice_due(status,scheduled_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS flow_callback (
id varchar(36) NOT NULL, tenant_id bigint NOT NULL, task_id varchar(64) NOT NULL,
instance_id varchar(64) NOT NULL, target_url varchar(2000) NOT NULL, payload longtext NOT NULL,
status varchar(16) NOT NULL, attempts int NOT NULL DEFAULT 0, max_attempts int NOT NULL DEFAULT 5, next_at timestamp(3) NOT NULL,
history longtext NULL,
lease_token varchar(36) NULL, lease_until timestamp(3) NULL, last_error varchar(500) NULL,
created_at timestamp(3) NOT NULL, updated_at timestamp(3) NOT NULL,
PRIMARY KEY(id), UNIQUE KEY uk_callback_task(tenant_id,task_id), KEY idx_callback_due(status,next_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;