Existe uma ferramenta de comparação de banco de dados SQL Server de código aberto?[fechado]

StackOverflow https://stackoverflow.com/questions/22792

Pergunta

Estou trabalhando em um projeto de código aberto que usa o SQL Server 2005 como armazenamento de dados.Precisamos de uma ferramenta de comparação de banco de dados para gerar scripts diff para poder atualizar um banco de dados de uma versão para outra.

Existe uma ferramenta de comparação de banco de dados SQL Server gratuita ou de código aberto que gera um script de conversão?

Foi útil?

Solução

Acho que o Open DBiff faz um bom trabalho.É simples e trabalho com SQL Server 2005/2008.

Mas apenas gere o script de mudança.Nada mais e nada menos.

Outras dicas

No CodePlex notei ontem DbDiff (http://www.codeplex.com/OpenDBiff) que você poderia tentar.Suporta Sql2005 e 2008, não experimentei.

Eu recomendo gastar algum dinheiro e obter Comparação SQL do Red Gate ferramenta que faz um excelente trabalho e pode até comparar bancos de dados com projetos de banco de dados do Visual Studio para gerar scripts de atualização.É rápido e fácil de usar e funciona bem.Os scripts de atualização também são de qualidade decente.

Não é tão caro.Provavelmente menos caro que o seu tempo.Pense em quanto é sua taxa horária e quantas horas seriam necessárias para investigar uma ferramenta de código aberto e fazê-la funcionar (e quantas você já gastou) e multiplique-as.Isso é quanto uma ferramenta “gratuita” realmente custa, o que geralmente é significativamente mais caro do que uma ferramenta comercial.

Não é de código aberto, mas é gratuito (como na cerveja): Sql Effects Accord (também conhecido como Clarity) Community Edition

AdeptSQL Diff e DataDiff são produtos maravilhosos, muito mais baratos que o RedGate e uma interface de usuário muito mais simplificada, e ainda não encontrei um cenário que ele não consiga lidar.

Aloha

Você pode querer tentar SqlDbDiff.Pode gerar scripts de mudança.A edição gratuita faz um trabalho bom o suficiente.

Alguém experimentou o xSQL Bundle (xSQL Data Compare e xSQL Object Compare)?Nosso local usa apenas diferenças de banco de dados, sem sincronizações, então não posso dizer sobre sincronização, mas as diferenças e os relatórios não são ruins.

Além disso, o OpenDBDiff tem um spin-off, não tenho certeza de qual é melhor - http://code.google.com/p/sql-dbdiff/

Alguém sabe se alguma das ferramentas de comparação de banco de dados de código aberto/gratuito mencionadas aqui oferece interface de linha de comando/scriptável para automatizar as diferenças e a sincronização?

Pesquisei as ferramentas xSQL, elas oferecem acesso à linha de comando, mas, infelizmente, nenhum comando programável para exportar resultados de comparação para o arquivo (relatório).

Embora não seja exatamente o que você deseja, encontrei isto para o postgres:

http://mbk.projects.postgresql.org/

Ele não gera uma comparação para aplicar, mas permite mesclar um dump completo da nova versão da tabela com a versão anterior.

Hmm, nenhum que eu conheça.Você sempre pode recuperar as definições como SQL e, em seguida, executar uma ferramenta diff nelas, mas é um pouco chato.

Provavelmente a melhor solução para isso é usar algum tipo de ferramenta de "Migrações", para que você possa manter as definições do seu banco de dados junto com o seu código e versioná-las, etc.

Atualizar

No Sourceforge eu encontrei Comparação de estrutura SQL Whizz com esta descrição:Whizz é um utilitário de comparação de banco de dados que será útil para encontrar diferenças entre dois bancos de dados MS-SQL Server.Também é capaz de gerar script SQL para atualizar as alterações de um banco de dados para outro banco de dados.

No entanto, não tive sucesso em fazê-lo funcionar até agora ...

Temos SQL Delta e SQL Compare.Cada um tem pontos fortes, mas também tem pontos fracos que os tornam um grande incômodo.

O SQL Delta perderá alguns gatilhos em sua comparação e executará ações não encontradas na lista de ações e, às vezes, executará ações que você não deseja que ele execute.Isso foi descoberto com um grande custo de tempo.

O SQL Compare capturará os gatilhos, mas eles estão incorporados nas listagens da tabela.Em um banco de dados grande, isso significa examinar cada tabela e analisá-las.Algo que a ferramenta deveria ter isolado para nós.Novamente, um grande custo de tempo.

É um pouco tarde, mas acabei de lançar um projeto bem simples em code plex:

http://dbcompare.codeplex.com

Insira (ou construa) duas strings de conexão e comparará todas as tabelas, visualizações e procedimentos armazenados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top