Considere a seguinte configuração:
- Um banco de dados de produção
- Um dev db, no qual são feitas alterações de esquema para habilitar novos recursos
Quando o desenvolvimento de um novo recurso é concluído, tenho que atualizar manualmente o esquema prod db até que pg_dump --schema-only
nos dois bancos de dados seja idêntico. Esse processo é propenso a erros e tedioso.
Então, estou procurando uma ferramenta que possa:
- Mostre um resumo das diferenças entre dois esquemas (como
diff
). Observe que não estou procurando uma mera diferença textual do esquema, mas uma ferramenta mais elaborada que pode tirar conclusões como "A tabelaX
possui uma nova colunaY
". - Gere automaticamente o código SQL que converteria um esquema em outro (como
patch
)
Existe um esquema diff / patch de ferramenta que pode me ajudar a converter esquemas prod aos esquemas dev mais avançados?
postgresql
schema
Adam Matan
fonte
fonte
Respostas:
Desculpe ressuscitar uma pergunta antiga
Recentemente, tenho usado a ferramenta de gerenciamento de banco de dados
DataGrip0xDBE da JetBrains.Ele suporta vários mecanismos de banco de dados, no excelente Jetbrains IDE, e um recurso importante que achei útil é a capacidade de
diff
2 tabelas (DEV e PROD).Abaixo está uma captura de tela do diff em ação (neste caso, existe apenas uma diferença de coluna). A captura de tela é o resultado do botão "Mesclar à direita" na parte superior, gerando o SQL necessário para trazer a tabela correta para o zero.
Espero que esta nova ferramenta ajude.
fonte
Database
do menu, selecione as 2 tabelas que você deseja comparar (comcmd/ctrl + click
), clique direito e selecioneCompare
Use liquibase .
Ele suporta diff , gerando um banco de dados do zero, corrigindo um banco de dados, revertendo um banco de dados e várias outras coisas.
Você costumava escrever tudo em XML com liquibase, mas não mais. Você pode escrever 99% no dialeto SQL de sua escolha. Exemplo:
Você deve manter os registros de alterações da base de dados no git ou no que quiser.
fonte