O SSDT é comparável ao Liquibase / Flyway, pois ele faz o que faz, mas adotando uma abordagem diferente. Com o SSDT, você tem o ambiente de desenvolvimento para obter coisas como definição, encontrar referências e inteligência, bem como a capacidade de compilar um projeto em um dacpac e, em seguida, implantar esse dacpac em um banco de dados.
A maneira SSDT (e a maneira de comparação do redgate sql) de fazer um incômodo é declarar o que você deseja, se quiser alterar uma tabela com a seguinte aparência:
create table a(id int)
para uma tabela que se parece com:
create table a(id int, another_column varchar(12))
com o SSDT, você apenas altera sua definição de tabela para a segunda e deixa o SSDT se preocupar com como atualizá-la (pode fazer uma alteração na tabela, adicionar uma coluna ou alterar a ordem da coluna para que você precise reconstruir a tabela etc).
Com o Liquibase (DbUp, ReadyRoll, métodos manuais, etc), o que você faz é, nesse caso, escrever a tabela de alteração e certificar-se de executar os scripts na ordem correta, considere este cenário:
- Release 1 - crie um olá para a coluna na tabela
- Release 2 - renomeie a coluna hello para joe_blogs
- Release 3 - renomeie a coluna joe_blogs para hello
- Release 4 - criar coluna joe_blogs
Se algum dos lançamentos estiver ausente, nenhum dos próximos poderá continuar.
Benefícios dos scripts de atualização (Liquibase, DbUp, etc):
- Você tem controle completo sobre os scripts
- DBAs / Desenvolvedores estão acostumados a isso
Benefícios da comparação / mesclagem (SSDT, Redgate SQL Compare):
- Não precisa escrever scripts de atualização
- É fácil chegar a qualquer versão específica, basta comparar e mesclar essa versão
Desvantagens dos scripts de atualização:
- Deve ser executado em ordem
- Confie nos humanos sem cometer erros
- Pode ser lento, especialmente se você tiver muitas alterações
- A menos que sua equipe tenha bancos de dados muito disciplinados em ambientes diferentes (dev, test, staging, prod etc.), muitas vezes ficam fora de sincronia, invalidando qualquer teste
- Fazer o downgrade de uma liberação significa escrever o reverso de todos os scripts que você já escreveu
Desvantagens do uso de comparação / mesclagem:
- As ferramentas não são 100% confiáveis, talvez injustamente
- O SSDT requer um projeto funcional, muitos bancos de dados possuem código que não é compilado ou executado (pense em tabelas eliminadas, mas não em procedimentos etc.), eu já vi isso em cerca de 8/10 bancos de dados que herdei :)
- Muitos DBAs / desenvolvedores hesitam em desistir do desenvolvimento no SSMS / bloco de notas
Pessoalmente, eu realmente acho que o SSDT é um ambiente de desenvolvimento profissional e isso significa que posso me concentrar em escrever códigos e testes úteis, em vez de escrever scripts de atualização que, por si só, são apenas um meio para atingir um fim.
Você pediu opiniões, então lá vai você :)
ed
Acabei de completar a resposta de previsão.
A maior diferença descrita no site da Flyway no local central:
Visual Studio + SSDT + SSIS = Ferramenta ETL de potência total, com apenas uma desvantagem real - ele funciona apenas no Windows Ele precisa do Windows + SQL Server para executar pacotes, mas trabalha principalmente com todas as fontes.
Para transferir / migrar dados - muitos produtos no mercado. Comercial, Código Aberto, Comunidade / Express e etc
Para migrar código - nem tudo é tão bom. Mesmo que o software prometa "converter gatilhos, procedimentos e funções sem problemas", na verdade - apenas simples, a maioria das migrações de código - manual.
fonte
Eu trabalhei com ferramentas de dados do servidor Sql e via. Usando o SSDT, eu tenho as seguintes vantagens:
Após a construção bem-sucedida, o SSDT gera o que é conhecido como "DACPAC". Pense nisso um msi com uma versão.
Um dado dacpac, com a versão 5, por exemplo, pode ser aplicado a um banco de dados que esteja no Dacpac versão 1,2,3,4 ou 6,7,8 etc. Se aplicado a 1-4, o banco de dados será atualizado. Se aplicado a 6,7 etc., o banco de dados será rebaixado / revertido. Haverá avisos, se houver perda de dados, que pode ser suprimida. Portanto, obtemos um ótimo recurso de reversão, que não está disponível em outras ferramentas, como flyway etc. Com o flyway, é necessário fornecer um novo conjunto de scripts para reversão.
O DACPAC aplica todas as alterações em uma transação; ou seja, se houver 5 alterações na tabela na atualização e uma delas falhar, a transação inteira será revertida. O Flyway também suporta isso, mas para todos os arquivos.
No entanto, SSDT e DACPACs são específicos do Microsoft SQL Server; O flyway pode ser usado para uma variedade de bancos de dados.
Portanto, se você estiver usando apenas o SQL Server, deve ser uma decisão bastante fácil de seguir com SSDT e DACPACs.
fonte