Schema Diff
Comparador side-by-side de shape de schema que emite un script de migración mongosh idempotente. Útil como gate de PR o antes de un refactor grande.
Qué es
Un tab de workspace que compara dos shapes de schema (pegue JSON o haga sample de una conexión en vivo) y renderiza las diferencias en un panel side-by-side. El tab Migration emite un script mongosh que puede correr en el target para hacerlo combinar — seguro para re-correr porque cada step es idempotente.
Cuándo usar
Conecte como gate de PR para que un teammate no pueda subir un cambio de schema sin un plan de migración generado. Corra antes de un refactor grande para ver exactamente cuáles campos y tipos difieren entre branches. Corra después de un refresh para confirmar que dev / staging combina con producción.
Cómo abrirlo
- En el app desktop del NoSqlStudio, abra el menú Tools → Schema Diff, o presione Ctrl+Alt+Shift+D.
- El workspace abre con dos paste areas (Source y Target) arriba, un panel de diff en el medio, y el tab Migration en la base.
- Pegue dos shapes de schema (sample documents también funcionan — el engine infiere la shape) y haga clic en Compare.
Workflow
- Source — pegue la shape de schema deseada (típicamente el sample de producción o el target después de refactor).
- Target — pegue la shape actual en el cluster receptor (dev o staging).
- Diff — el engine renderiza fields agregados (verde), fields removidos (rojo), y cambios de tipo (amarillo). Haga clic en cualquier fila para ver el path real del field y el tipo BSON inferido.
- Migration — cambie al tab Migration. El engine emite un script mongosh usando $set/$unset/$rename + collMod para cambios de índice. El script es idempotente — correrlo en un target ya convergido es un no-op.
- Copie o descargue el script. Córralo desde mongosh en el target, luego re-corra Compare para confirmar que el diff está vacío.
Limitaciones (v1)
- Inferencia es sample-based. Si su schema tiene branches raras que no aparecieron en la sample, el engine las pierde — defina sample size para cubrir documents representativos.
- Script de migración maneja fields e índices; no maneja views, search indexes, o collections de time-series. Conecte esos separadamente.
- Sin garantía transaccional — el script generado corre cada step independientemente. Para consistencia multi-document debe wrappearlo en un bloque session.startTransaction por cuenta propia.