-- 2026-09-20 流程回调迁 yh-flow-callback-spring-boot-starter 数据迁移(svc-hall) -- 前置:应用完成升级并以 yh.flow-callback.store.auto-create-table=true 启动过一次 --(starter 自动建 flow_callback_event / flow_callback_reg 两表),或已按 starter 的 -- flow-callback-schema.sql 手工建表。本脚本幂等,可重复执行。 -- 1. 登记镜像:service_flow_reg 的 secret 平移到 starter 镜像表(X-Flw 验签改从它取密钥, -- 保留存量 secret = 存量注册不轮换、推送零中断) INSERT INTO flow_callback_reg (sch_id, flow_guid, callback_url, event_types, secret, status, update_time) SELECT r.sch_id, r.flow_guid, r.callback_url, r.event_types, r.secret, IFNULL(r.status, 0), NOW() FROM service_flow_reg r WHERE r.secret IS NOT NULL AND r.secret <> '' ON DUPLICATE KEY UPDATE callback_url = VALUES(callback_url), event_types = VALUES(event_types), secret = VALUES(secret), status = VALUES(status), update_time = NOW(); -- 2. 幂等播种:已消费的 eventId 灌入 starter 幂等表,封死"迁移窗口内 flow-center 重推旧事件 -- 被当成新事件二次消费"的口子。biz_id/instance_version 旧表没有,置 NULL—— -- 只参与 eventId 去重,不参与乱序门(MAX 忽略 NULL)。 INSERT IGNORE INTO flow_callback_event (event_id, event, sch_id, biz_type, biz_id, instance_id, instance_version, receive_time, payload_json) SELECT e.event_id, e.event, e.sch_id, 'svc_item', NULL, e.instance_id, NULL, e.receive_time, e.payload_json FROM service_flow_event e; -- 3. 历史表保留:service_flow_reg / service_flow_event 不删(存档),代码不再读写。