Fatos principais
- Categoria
- Desenvolvimento e Web
- Tipos de entrada
- textarea, select
- Tipo de saída
- json
- Cobertura de amostras
- 4
- API disponível
- Yes
Visão geral
O Diff de Schema de Banco de Dados compara dois schemas e gera automaticamente um rascunho de migração SQL. Compatível com SQL DDL e resumos em JSON ou YAML, a ferramenta analisa as diferenças entre a origem e o destino, destacando alterações em tabelas, colunas, índices e chaves estrangeiras para dialetos como PostgreSQL, MySQL e SQLite.
Quando usar
- •Quando precisar gerar scripts de migração SQL para atualizar um banco de dados de produção com base em um novo modelo de desenvolvimento.
- •Para revisar alterações de schema propostas em pull requests, comparando o estado atual com o novo DDL.
- •Ao migrar definições de banco de dados de formatos JSON/YAML para instruções SQL nativas em diferentes dialetos.
Como funciona
- •Cole o schema atual no campo 'Schema de origem' e o novo schema no campo 'Schema de destino'.
- •Selecione o formato do schema (SQL DDL ou JSON/YAML) e o dialeto do banco de dados (MySQL, PostgreSQL ou SQLite), ou deixe em detecção automática.
- •A ferramenta processa as entradas e identifica tabelas, colunas, índices e chaves estrangeiras adicionadas, removidas ou alteradas.
- •O resultado é retornado em JSON, contendo um resumo das modificações e o código SQL do rascunho de migração.
Casos de uso
Exemplos
1. Geração de migração PostgreSQL a partir de DDL
Desenvolvedor Backend- Contexto
- Um desenvolvedor adicionou um campo de e-mail obrigatório e um índice à tabela de usuários no ambiente de desenvolvimento.
- Problema
- Criar o script de migração SQL exato para aplicar essas mudanças no banco de produção sem escrever os comandos manualmente.
- Como usar
- Insira o DDL antigo em 'Schema de origem' e o novo DDL com a coluna e o índice em 'Schema de destino'. Defina o formato como 'SQL DDL' e o dialeto como 'PostgreSQL'.
- Configuração de exemplo
-
{"schemaFormat": "sql", "dialect": "postgresql"} - Resultado
- A ferramenta retorna um JSON indicando 1 coluna e 1 índice adicionados, junto com o script ALTER TABLE e o comando CREATE INDEX correspondentes.
2. Comparação de schemas JSON para SQLite
Engenheiro de Dados- Contexto
- A equipe documenta a estrutura do banco em arquivos JSON. Uma tabela de auditoria e uma coluna de e-mail foram removidas na nova versão do projeto.
- Problema
- Identificar as remoções e gerar o SQL de atualização para um banco SQLite, lidando com as limitações específicas do dialeto.
- Como usar
- Cole o JSON antigo e o novo nos respectivos campos de origem e destino, selecionando 'JSON ou YAML' como formato e 'SQLite' como dialeto.
- Configuração de exemplo
-
{"schemaFormat": "json", "dialect": "sqlite"} - Resultado
- O resumo aponta a remoção de 1 tabela e 1 coluna, gerando o comando DROP TABLE e um comentário alertando que o SQLite exige a recriação da tabela para remover a coluna.
Testar com amostras
sqlHubs relacionados
FAQ
Quais formatos de schema são suportados?
A ferramenta suporta instruções SQL DDL diretas e resumos de schema estruturados em JSON ou YAML.
Quais bancos de dados a ferramenta reconhece?
Suportamos os dialetos MySQL, PostgreSQL e SQLite. Você também pode usar a opção de detecção automática.
A ferramenta gera o script de migração completo?
Ela gera um rascunho de migração SQL baseado nas diferenças encontradas. É recomendado revisar o código gerado antes de executá-lo em produção.
Como o SQLite lida com a remoção de colunas?
Como o SQLite possui limitações para remover colunas diretamente via DROP COLUMN, a ferramenta adiciona um aviso no SQL gerado indicando a necessidade de recriar a tabela.
O que o resumo de alterações inclui?
O JSON de saída inclui contagens exatas de tabelas, colunas, índices e chaves estrangeiras que foram adicionadas, removidas ou modificadas.