refactor(sync): 增量水位声明与源类型解耦 — file 源存量跑同产 cursor(与拉模式同一段逻辑)
统一动机:jvs-dw(拉)存量跑写 cursor_after=run_start 供首次增量接力;FRIDAY(file)
此前不写 —— 差异根源不是流程分叉(finally 记账本就单点共用),而是 incremental.per_query
声明寄生在 sql_source 之下,file 源无处声明水位列。
- manifest.schema:IncrementalDeclSchema 抽名;sql_source.incremental 引用之(形状不动),
manifest 顶层新增可选 incremental(file 源用;两处都写时 sql_source 内优先)
- cold-import:入口一行 ?? 兜底(sql_source 优先短路)——之后读写 cursor 走完全同一段
finally,零新逻辑。file 装载路径不消费水位(loadAllTables 文件分支忽略 incremental
参数,全量装载幂等去重),水位纯记账,供 delta 导出 WHERE 模板 / push 回放起点
- friday manifest:顶层声明 12 张事件表 updated_gmt_at(字典表/contacts 无更新列不列)
验证:tsc 0 err;jvs-dw 零影响(manifest 未动 + ?? 短路 + dry-run Cursor 解析行为不变);
friday 实跑 sync_logs 首次产出 cursor_after={12 表 × run_start ISO}。
心智模型统一:所有宿主存量跑即水位创世写入,差别只剩水位消费方。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment