Integrazione continua - Database

L'integrazione continua del database è il processo di ricostruzione del database e dei dati di test ogni volta che viene applicata una modifica al repository di controllo della versione di un progetto.

In Database Integration, generalmente tutti gli artefatti relativi all'integrazione del database -

  • Dovrebbe risiedere in un sistema di controllo della versione.
  • Può essere testato per il rigore e ispezionato per la conformità alle politiche.
  • Può essere generato utilizzando i tuoi script di build.

Le attività che possono essere coinvolte nell'integrazione continua del database possono essere una delle seguenti:

Drop a Database - Rilascia il database e rimuovi i dati associati, in modo da poter creare un nuovo database con lo stesso nome

Create a new Database - Crea un nuovo database utilizzando DDL (Data Definition Language).

Insert the Initial Data - Inserire i dati iniziali (ad esempio, tabelle di ricerca) che il sistema dovrebbe contenere al momento della consegna.

Migrate Database and Data - Migrare lo schema del database e i dati su base periodica (se si sta creando un sistema basato su un database esistente).

Modify Column Attributes - Modifica gli attributi ei vincoli delle colonne della tabella in base ai requisiti e al refactoring.

Modify Test Data - Modificare i dati di test secondo necessità per più ambienti.

Quindi, nel nostro esempio di database continuo, eseguiremo i seguenti passaggi:

  • Creeremo un database MS SQL Server e una tabella corrispondente.

  • Creeremo uno script da SQL Server Management Studio. Questo script di database verrà utilizzato per impostare la nostra tabella nel database.

  • Scriveremo un codice nel nostro progetto ASP.Net per accedere a questo database.

  • Creeremo un passaggio nel nostro progetto in TeamCity per eseguire questo script.

  • Verificheremo il nostro script in Git.

Passaggi per eseguire questa operazione nel database AWS creato in una sezione precedente.

Step 1- Creare un database MS SQL Server e una tabella corrispondente. Apriamo SQL Server Management Studio e creiamo un semplice database e una tabella. Fare clic con il pulsante destro del mouse sui database e fare clic suNew Database.

Step 2 - Chiamalo come Demodb e fare clic su OK

Step 3 - Nel nuovo database, fare clic con il pulsante destro del mouse e creare una nuova tabella.

Step 4 - Puoi aggiungere le colonne desiderate alla tabella.

Step 5 - Salvare la tabella e denominarla come Demotb.

Step 6 - Ora fai clic con il pulsante destro del mouse sulla tabella e scegli l'opzione di menu Script Table as → Drop and Create to → File.

Step 7 - Salva il file nella cartella del progetto demo come Sample.sql.

Questo è l'aspetto dello script del database. Prima eliminerebbe una tabella esistente se presente e quindi ricrea la tabella.

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 - Ora cambiamo velocemente il nostro ASP.Net code per fare riferimento al nuovo database.

Step 9 - Nel Tutorial.cs file nel tuo Demo project, aggiungi le seguenti righe di codice. Queste righe di codice si connetteranno al database, prenderanno la versione del server e memorizzeranno il nome della versione nella variabile Name. Possiamo visualizzare questa variabile Nome nel nostro fileDemo.aspx.cs file tramite un file 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 - Aggiungi il codice seguente al file Demo.aspx.cs per assicurarsi che visualizzi la versione di 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);
      }
   }
}

Ora se eseguiamo il codice, otterrai il seguente output nel browser.

Step 11- Ora aggiungiamo il nostro passaggio in TeamCity che richiamerà lo script del database. Vai alla dashboard del tuo progetto e fai clicEdit Configuration Settings.

Step 12 - Vai a Build Steps e fai clic Add build step.

Scegliere le seguenti opzioni (notare che il client MS SQL Server deve essere installato su CI Server).

  • Il tipo di corridore dovrebbe essere la riga di comando.

  • Assegna un nome passaggio opzionale.

  • Run dovrebbe essere eseguibile con parametri.

  • L'eseguibile del comando dovrebbe essere C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe

  • I parametri del comando dovrebbero essere -S WIN-50GP30FGO75 -i Sample.sql. Dove –S fornisce il nome dell'istanza di SQL Server.

Step 13 - Fare clic su Salva.

Ora ciò che deve essere assicurato è l'ordine di costruzione. Devi assicurarti che l'ordine di costruzione sia il seguente.

Step 14 - Puoi modificare l'ordine di compilazione scegliendo l'opzione per riordinare i passaggi di compilazione.

  • La configurazione del database dovrebbe essere la prima, quindi verrà utilizzata per ricreare il database da zero.

  • La prossima è la build della tua applicazione.

  • Finalmente la tua configurazione di prova.

Step 15 - Ora esegui il file git add e git commit comando in modo che il Sample.sqlfile viene archiviato in Git. Questo attiverà automaticamente una build. E questa build dovrebbe passare.

Ora hai un ciclo di compilazione completo con un aspetto di integrazione continua del database anche nel tuo ciclo. Nella sezione successiva, esaminiamo ulteriormente questo aspetto e esaminiamo la distribuzione continua.

Ora che lo hai fatto con un SQL Server locale, possiamo ripetere gli stessi passaggi per un file AWS MS SQLServer che è stato creato in una delle sezioni precedenti. Per connettersi a un Microsoft SQL Server, è necessario connettersi tramite la seguente convenzione.

Step 16- Per prima cosa vedi qual è il nome assegnato alla tua istanza di database in AWS. Quando accedi ad AWS, vai alla sezione RDS nella sezione database.

Step 17 - Fare clic su Istanze database nella schermata successiva che viene visualizzata.

step 18- Fare clic sul database e prendere nota dell'endpoint. Nello screenshot seguente, èdemodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 - Ora per connettersi al database da SQL Server Management Studio, è necessario specificare la connessione come demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (Notare la virgola utilizzata tra il nome dell'istanza e il numero di porta).

Lo screenshot seguente mostra una connessione riuscita al database.

Quindi puoi ripetere tutti gli stessi passaggi. IlSqlcmd command sarà il seguente -

Questo stesso comando può essere sostituito nella fase di creazione del database in TeamCity. Quando esegui il filesqlcmd command, la tabella verrà creata automaticamente nel database SQL Server in AWS.