Integração Contínua - Banco de Dados

A integração contínua de banco de dados é o processo de reconstruir seu banco de dados e testar os dados sempre que uma alteração é aplicada ao repositório de controle de versão de um projeto.

Na integração de banco de dados, geralmente todos os artefatos relacionados à integração de banco de dados -

  • Deve residir em um sistema de controle de versão.
  • Pode ser testado quanto ao rigor e inspecionado quanto à conformidade com as políticas.
  • Pode ser gerado usando seus scripts de construção.

As atividades que podem estar envolvidas na integração contínua de banco de dados podem ser qualquer uma das seguintes -

Drop a Database - Elimine o banco de dados e remova os dados associados, para que você possa criar um novo banco de dados com o mesmo nome

Create a new Database - Criar um novo banco de dados usando Data Definition Language (DDL).

Insert the Initial Data - Insira quaisquer dados iniciais (por exemplo, tabelas de pesquisa) que se espera que seu sistema contenha quando entregue.

Migrate Database and Data - Migre o esquema e os dados do banco de dados periodicamente (se estiver criando um sistema baseado em um banco de dados existente).

Modify Column Attributes - Modifique os atributos e restrições da coluna da tabela com base nos requisitos e refatoração.

Modify Test Data - Altere os dados de teste conforme necessário para vários ambientes.

Portanto, em nosso exemplo de banco de dados contínuo, faremos as seguintes etapas -

  • Criaremos um banco de dados MS SQL Server e uma tabela correspondente.

  • Criaremos um script a partir do SQL Server Management Studio. Este script de banco de dados será usado para configurar nossa tabela no banco de dados.

  • Vamos escrever um código em nosso projeto ASP.Net para acessar esse banco de dados.

  • Vamos criar uma etapa em nosso projeto no TeamCity para executar este script.

  • Faremos check-in do nosso script no Git.

Etapas para fazer isso no banco de dados AWS que foi criado em uma seção anterior.

Step 1- Crie um banco de dados MS SQL Server e uma tabela correspondente. Vamos abrir o SQL Server Management Studio e criar um banco de dados e uma tabela simples. Clique com o botão direito em bancos de dados e clique emNew Database.

Step 2 - Nomeie como Demodb e clique em OK

Step 3 - No novo banco de dados, clique com o botão direito e crie uma nova tabela.

Step 4 - Você pode adicionar as colunas desejadas à tabela.

Step 5 - Salve a tabela e nomeie-a como Demotb.

Step 6 - Agora clique com o botão direito na mesa e escolha a opção do menu Script Table as → Drop and Create to → File.

Step 7 - Salve o arquivo na pasta do projeto de demonstração como Sample.sql.

Esta é a aparência do script de banco de dados. Primeiro, ele eliminaria uma tabela existente, se presente, e depois a recriaria.

USE [Demodb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******

DROP TABLE [dbo].[Demotb]
GO

/****** Object: Table [dbo].[Demotb] Script Date: 3/22/2016 7:03:25 AM

******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Demotb](
   [TutorialName] [nvarchar](max) NULL,
   [TutorialID] [smallint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

Step 8 - Agora vamos mudar rapidamente nosso ASP.Net code para se referir ao novo banco de dados.

Step 9 - no Tutorial.cs arquivo em seu Demo project, adicione as seguintes linhas de código. Essas linhas de código irão se conectar ao seu banco de dados, pegar a versão do servidor e armazenar o nome da versão na variável Name. Podemos exibir essa variável de nome em nossoDemo.aspx.cs arquivo através de um Response.write comando.

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace Simple {
   public class Tutorial {
      public String Name;
      
      public Tutorial() {
         string connectionString = "Data Source = WIN-50GP30FGO75;
         Initial Catalog = Demodb;
         Integrated Security = true;";
         
         using (SqlConnection connection = new SqlConnection()) {
            connection.ConnectionString = connectionString;
            connection.Open();
            Name = connection.ServerVersion;
            connection.Close();
         }
      }
   }
}

Step 10 - Adicione o seguinte código ao Demo.aspx.cs arquivo para garantir que exibe a versão do SQL Server.

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Simple {
   public partial class Demo : System.Web.UI.Page {
      Tutorial tp = new Tutorial();
      
      protected void Page_Load(object sender, EventArgs e){
         Response.Write(tp.Name);
      }
   }
}

Agora, se executarmos o código, você obterá a seguinte saída no navegador.

Step 11- Agora vamos adicionar nossa etapa no TeamCity, que invocará o script do banco de dados. Vá para o painel do seu projeto e clique emEdit Configuration Settings.

Step 12 - Vá para Build Steps e clique em Add build step.

Escolha as seguintes opções (observe que o cliente MS SQL Server deve ser instalado no CI Server).

  • O tipo de corredor deve ser a linha de comando.

  • Dê um nome de etapa opcional.

  • A execução deve ser executável com parâmetros.

  • O executável do comando deve ser C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe

  • Os parâmetros de comando devem ser -S WIN-50GP30FGO75 -i Sample.sql. Onde –S fornece o nome da instância do SQL Server.

Step 13 - Clique em Salvar.

Agora, o que precisa ser garantido é a ordem de construção. Você deve garantir que a ordem de construção seja a seguinte.

Step 14 - Você pode alterar a ordem de construção escolhendo a opção de reordenar as etapas de construção.

  • A configuração do banco de dados deve ser primeiro - então, isso será usado para recriar seu banco de dados do zero.

  • A seguir está a construção de seu aplicativo.

  • Finalmente sua configuração de teste.

Step 15 - Agora execute o git add e git commit comando para que o Sample.sqlarquivo é verificado no Git. Isso irá acionar uma construção automaticamente. E esta construção deve passar.

Agora você tem um ciclo de construção completo com um aspecto de integração contínua de banco de dados também em seu ciclo. Na próxima seção, vamos aprofundar e examinar a implantação contínua.

Agora que você fez isso com um SQL Server local, podemos repetir as mesmas etapas para um AWS MS SQLServidor que foi criado em uma das seções anteriores. Para se conectar a um Microsoft SQL Server, você precisa se conectar por meio da seguinte convenção.

Step 16- Primeiro veja qual é o nome atribuído à sua instância de banco de dados na AWS. Ao fazer login no AWS, vá para a seção RDS na seção de banco de dados.

Step 17 - Clique em Instâncias de banco de dados na próxima tela que aparecer.

step 18- Clique em seu banco de dados e anote o endpoint. Na imagem a seguir, édemodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 - Agora, para se conectar ao banco de dados de SQL Server Management Studio, você precisa especificar a conexão como demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (Observe a vírgula usada entre o nome da instância e o número da porta).

A captura de tela a seguir mostra uma conexão bem-sucedida com o banco de dados.

Então você pode repetir todos os mesmos passos. oSqlcmd command será o seguinte -

Este mesmo comando pode ser substituído na etapa de construção do banco de dados no TeamCity. Quando você executa osqlcmd command, a tabela será criada automaticamente em seu banco de dados SQL Server na AWS.