文档
Schema Diff
并排 schema 形状比较器,发出幂等 mongosh 迁移脚本。用作 PR gate 或在重大重构之前。
它是什么
一个 workspace tab,比较两个 schema 形状(粘贴 JSON 或从实时连接采样)并在并排面板中渲染差异。Migration tab 发出一个 mongosh 脚本,您可以在 target 上运行以使其匹配 — 可安全重新运行,因为每步都是幂等的。
何时使用
接入为 PR gate,使队友无法在没有生成的迁移计划的情况下提交 schema 变更。在重大重构之前运行,以查看分支之间字段和类型的确切差异。在刷新后运行,以确认 dev / staging 与生产匹配。
如何打开
- 在 NoSqlStudio 桌面应用中,打开 Tools 菜单 → Schema Diff,或按 Ctrl+Alt+Shift+D。
- workspace 打开,顶部有两个粘贴区域(Source 和 Target),中间是 diff 面板,底部是 Migration tab。
- 粘贴两个 schema 形状(样本文档也可以 — engine 推断形状)并点击 Compare。
工作流
- Source — 粘贴所需的 schema 形状(通常是生产样本或重构后的 target)。
- Target — 粘贴接收 cluster(dev 或 staging)上的当前形状。
- Diff — engine 渲染添加的字段(绿色)、删除的字段(红色)和类型变更(黄色)。点击任意行以查看实际字段路径和推断的 BSON 类型。
- Migration — 切换到 Migration tab。engine 发出一个使用 $set/$unset/$rename + collMod 进行索引更改的 mongosh 脚本。脚本是幂等的 — 在已收敛的 target 上运行它是 no-op。
- 复制或下载脚本。在 target 上从 mongosh 运行,然后重新运行 Compare 以确认 diff 为空。
限制(v1)
- 推断基于样本。如果您的 schema 有未出现在样本中的稀有分支,engine 会错过它们 — 设置样本大小以覆盖代表性文档。
- 迁移脚本处理字段和索引;它不处理 views、search indexes 或 time-series collections。单独接入这些。
- 无事务保证 — 生成的脚本独立运行每一步。对于多文档一致性,您必须自己将其包装在 session.startTransaction 块中。