Documentação
Schema Diff
Comparador side-by-side de shape de schema que emite um script de migração mongosh idempotente. Útil como gate de PR ou antes de um refactor grande.
O que é
Uma tab de workspace que compara duas shapes de schema (cole JSON ou faça sample de uma conexão ao vivo) e renderiza as diferenças num painel side-by-side. O tab Migration emite um script mongosh que você pode rodar no target para fazê-lo combinar — seguro para re-rodar porque cada step é idempotente.
Quando usar
Conecte como gate de PR para que um teammate não consiga subir uma mudança de schema sem um plano de migração gerado. Rode antes de um refactor grande para ver exatamente quais campos e tipos diferem entre branches. Rode após um refresh para confirmar que dev / staging combina com produção.
Como abrir
- No app desktop do NoSqlStudio, abra o menu Tools → Schema Diff, ou pressione Ctrl+Alt+Shift+D.
- O workspace abre com duas paste areas (Source e Target) no topo, um painel de diff no meio, e o tab Migration na base.
- Cole duas shapes de schema (sample documents também funcionam — o engine infere a shape) e clique em Compare.
Workflow
- Source — cole a shape de schema desejada (tipicamente o sample de produção ou o target após refactor).
- Target — cole a shape atual no cluster receptor (dev ou staging).
- Diff — o engine renderiza fields adicionados (verde), fields removidos (vermelho), e mudanças de tipo (amarelo). Clique em qualquer linha para ver o path real do field e o tipo BSON inferido.
- Migration — mude para o tab Migration. O engine emite um script mongosh usando $set/$unset/$rename + collMod para mudanças de índice. O script é idempotente — rodá-lo num target já convergido é um no-op.
- Copie ou baixe o script. Rode-o do mongosh no target, depois re-rode Compare para confirmar que o diff está vazio.
Limitações (v1)
- Inferência é sample-based. Se seu schema tem branches raras que não apareceram na sample, o engine as perde — defina sample size para cobrir documents representativos.
- Script de migração lida com fields e índices; não lida com views, search indexes, ou collections de time-series. Conecte esses separadamente.
- Sem garantia transacional — o script gerado roda cada step independentemente. Para consistência multi-document você deve wrappá-lo num bloco session.startTransaction por conta própria.