数据任务 dataTasks
msq.dataTasks 用于执行小范围、显式、可复核的发布任务:生产索引同步、筛选数据同步、字段调整、受影响数据快照和结果验证。
它不是 schema migration 框架,也不会维护 up/down 迁移台账。全库搬迁应优先使用 MongoDB 原生导入导出或应用自有任务。发布中需要有边界、可 dry-run、可复跑的操作时,使用 dataTasks。
任务流程
CLI 使用同一套流程:
dry-run、run、verify 需要任务文件导出 { runtime, task },CLI 用 runtime 创建 MonSQLize 实例。只做静态校验的 plan 可以不连接数据库。
支持的步骤
安全规则
syncData、transformFields、exportAffected必须提供filter,除非显式设置allowFullCollection: true。- 跨端点
syncData必须使用稳定业务字段matchBy。默认禁止用源端_id匹配,除非 step 设置allowSourceIdMatch: true。 - 生产任务在执行写步骤前必须传入
confirmProduction: true。 - 数据写入步骤会先导出受影响文档快照。只有同时设置
snapshot: false和allowRunWithoutSnapshot: true才允许跳过。 - 索引同步总是先读取
listIndexes()。冲突只报告;dataTasks 不会 drop、rename 或 rebuild 冲突索引。
CLI 任务文件
如果任务中包含 transformFields.transform 这类 JavaScript 函数,用 .cjs。静态 plan 或简单任务可用 .json。