. Seu banco de dados SQL Server Auto-deploy e versão com SSDT - Tudo Sobre Tecnologia

Ferramentas de dados do Microsoft SQL Server livres aliviar o fardo sobre os administradores de banco de dados quando versionamento bancos de dados. Veja como eles podem ajudar você nessa tarefa, por vezes, complicado. 
Por Keith Schreiner
Eu li e foi dito muitas vezes que é uma "melhor prática" para controle de versão meu banco de dados. Para fazê-lo, eu tentei ferramentas passadas da Microsoft, RedGate, e outros, mas nenhum deles realmente pegou para mim. Eu também não gostava de o processo "confuso" de ter que gerenciar vários scripts SQL ao atualizar um banco de dados de produção. Mas a mais recente ferramenta da Microsoft (gratuito), SQL Server Data Tools  (SSDT), tem restaurado a minha fé que a minha versão do banco de dados não deve ser uma tarefa temida.

Definir 

SSDT acrescenta uma série de funcionalidades de Visual Studio para trabalhar com bancos de dados SQL Server. As principais coisas que ele adiciona é um "Projeto de Banco de Dados SQL Server" e algo chamado DACPAC (pacote de aplicativos de camada de dados). A DACPAC é um único arquivo de implantação que contém o esquema do banco de dados inteiro e alguns arquivos SQL relacionados (como o look-up de dados), basicamente, tudo para implantar uma nova versão do seu banco de dados em um arquivo. É semelhante a um BACPAK, que é um DACPAC além de todos os dados em cada mesa (como uma cópia de segurança do banco de dados padrão). Mas antes de falarmos mais sobre DACPAC do vamos discutir o SSDT acrescenta com seu projeto de banco de dados SQL Server.

Desenvolver 

Em Visual Studio, depois de criar um novo projeto de banco de dados SQL Server, você tem uma opção para importar um banco de dados, que bem cria scripts SQL de todos os seus objetos de banco de dados (tabelas, visões, procedimentos armazenados, e muito mais). O próximo passo que eu faço é criar uma pasta "Data" e adicionar um script SQL pós-implantação para preencher os look-up de dados e, opcionalmente, criar alguns dados de teste.
Em um projeto de banco de dados que você só pode ter um pós-implantação e um arquivo de pré-implantação, por isso é uma das melhores práticas para usar a sintaxe SQLCMD para incluir outros arquivos em seu arquivo principal para ajudar na organização e manutenção.Como você está criando esses scripts SQL, ou a edição do SQL para as tabelas e procedimentos armazenados, você vai começar a perceber todas as outras coisas SSDT contribui para Visual Studio: SQL IntelliSense, código de navegação SQL, a Objetos do SQL Server, a depuração de de SP, testes de unidade para SP de um Designer Tabela visual, um esquema comparar ferramenta, uma ferramenta de comparar dados, e muito mais. Todas essas características tornam o desenvolvimento de banco de dados e manutenção sentir natural em Visual Studio.
ssdt_image001.png
  
ssdt_image002.png

Implantar 

Depois de fazer as alterações do banco de dados, o próximo passo é implantá-las, e SSDT fornece várias maneiras. A primeira maneira é "Publicar", que funciona muito bem se você tem uma conexão direta com o banco de dados de sua máquina Visual Studio (como para o seu banco de dados local ou "Dev"). O botão direito do mouse no projeto de banco de dados e selecione "Publish ..." que abre uma caixa de diálogo para salvar um perfil. Uma vez que um perfil é salvo como parte de seu projeto, você pode simplesmente clicar duas vezes nele para publicar diretamente seu projeto de banco de dados para o banco de dados ou apenas para gerar um roteiro das mudanças que ele seria executado.  
A segunda maneira é usar um DACPAC, que falamos acima, quando os desenvolvedores não têm acesso ao banco de dados de destino (como para a produção). Para criar um DACPAC, apenas o botão direito do mouse no projeto de banco de dados e selecione "Projeto Instantâneo", que, em seguida, cria um DACPAC na pasta "Snapshots" do seu projeto. Então, para implantar esse DACPAC você tem várias opções. Se você tem um DBA que sempre se aplica atualizações de banco de dados, você pode dar-lhe o DACPAC aplicar usando SSMS (SQL Server Management Studio), que tem um built-in "Upgrade da camada de dados do aplicativo" tarefa, ele usa um assistente para ajudar a aplicar as alterações (e permite que todas as alterações a serem revistos para problemas, como a possível perda de dados, a cada passo).
ssdt_image003.png
 Outra opção implantação DACPAC é chamar "SqlPackage.exe" (com parâmetros de linha de comando) ou escrever algum código C # (do namespace Microsoft.SqlServer.Dac) que implanta o próprio DACPAC. Isso faz com que a implantação automática, quase a um ponto em que você não tem que se preocupar com isso.
ssdt_image005.png
  

Amostra da vida real

No primeiro projeto que eu usei SSDT (um novo web site MVC), eu encontrei três problemas com SSDT. Aqui está como eu resolvi los e desenvolvimento de banco de dados muito simplificada. Primeiro, eu só queria auto-implantar o DACPAC em Application_Start do site quando o banco tinha realmente mudado. Então eu adicionei um pedaço de lógica para verificar se há um novo número de versão na última DACPAC antes de aplicá-la. O número da versão do DACPAC está definido nas propriedades do banco de dados do projeto -> Propriedades de diálogo, bem como a versão do banco de dados atual é armazenado na tabela de sistema, -> Configurações do Projeto msdb.dbo.sysdac_instances_internal . Tendo este número de versão não só fez a inicialização mais rápida, ele fez os outros conscientes de uma versão "banco de dados". 
ssdt_image006.png
ssdt_image007.png
A segunda questão foi a forma de configurar o projeto de banco de dados para incluir "dados de teste" para o banco de dados Dev, mas excluí-lo para a produção. Isto foi conseguido através da criação de um segundo projeto de banco de dados (DatabaseAndTestData), que teve uma "referência de banco de dados" para o primeiro projeto. Neste segundo projecto, o seu script pós-implantação inclui script pós-implantação do primeiro projeto e, em seguida, todos os dados de teste. Eu usei o primeiro projeto (sem dados de teste) para criar o DACPAC para a produção, e, em seguida, publicado apenas o segundo projeto (com dados de teste) diretamente para Dev.
ssdt_image008.png
Por último, alguns desenvolvedores reclamaram que após a atualização do esquema ou look-up de dados, eles ainda têm de fazer várias tarefas chatas e repetitivas para obter o DACPAC pronto para ser implantado. Para resolver isso, eu escrevi uma aplicação simples (UpdateDatabaseVersion.exe), que pode ser chamado de o "Solution Explorer" do projeto de banco de dados usando a extensão do Visual Studio ", VSCommands". Ele aumenta o número da versão do banco de dados, cria a DACPAC, e coloca-lo na pasta correta para a implantação. Ao implementar esses processos SSDT, ele simplificados tarefas relacionadas com banco de dados da minha equipe, o que nos permite passar mais tempo em outras tarefas.
ssdt_image009.png

0 comentários Goocle+ 0 Facebook

Postar um comentário

 
Tudo Sobre Tecnologia © 2013-2020. Todos os direitos reservados. Tudo Sobre Tecnologia. Desenvolvido por TST
Topo