Integración continua: base de datos

La Integración Continua de Base de Datos es el proceso de reconstruir su base de datos y los datos de prueba cada vez que se aplica un cambio al repositorio de control de versiones de un proyecto.

En Integración de bases de datos, generalmente todos los artefactos relacionados con la integración de bases de datos:

  • Debe residir en un sistema de control de versiones.
  • Puede probarse para verificar su rigor e inspeccionarse para verificar el cumplimiento de las políticas.
  • Se puede generar usando sus scripts de compilación.

Las actividades que pueden estar involucradas en la integración continua de bases de datos pueden ser cualquiera de las siguientes:

Drop a Database - Suelta la base de datos y elimina los datos asociados, para que puedas crear una nueva base de datos con el mismo nombre

Create a new Database - Cree una nueva base de datos utilizando el lenguaje de definición de datos (DDL).

Insert the Initial Data - Inserte cualquier dato inicial (por ejemplo, tablas de búsqueda) que se espera que su sistema contenga cuando se entregue.

Migrate Database and Data - Migre el esquema y los datos de la base de datos de forma periódica (si está creando un sistema basado en una base de datos existente).

Modify Column Attributes - Modificar los atributos y las restricciones de las columnas de la tabla según los requisitos y la refactorización.

Modify Test Data - Modifique los datos de prueba según sea necesario para múltiples entornos.

Entonces, en nuestro ejemplo de base de datos continua, realizaremos los siguientes pasos:

  • Crearemos una base de datos MS SQL Server y una tabla correspondiente.

  • Crearemos un script a partir de SQL Server Management Studio. Este script de base de datos se utilizará para configurar nuestra tabla en la base de datos.

  • Escribiremos un código en nuestro proyecto ASP.Net para acceder a esta base de datos.

  • Crearemos un paso en nuestro proyecto en TeamCity para ejecutar este script.

  • Revisaremos nuestro script en Git.

Pasos para hacer esto en la base de datos de AWS que se creó en una sección anterior.

Step 1- Cree una base de datos de MS SQL Server y una tabla correspondiente. Abramos SQL Server Management Studio y creemos una base de datos y una tabla simples. Haga clic derecho en bases de datos y haga clic enNew Database.

Step 2 - Nómbrelo como Demodb y haga clic en Aceptar

Step 3 - En la nueva base de datos, haga clic derecho y cree una nueva tabla.

Step 4 - Puede agregar las columnas que desee a la tabla.

Step 5 - Guarde la tabla y nómbrela como Demotb.

Step 6 - Ahora haga clic derecho en la tabla y elija la opción de menú Script Table as → Drop and Create to → File.

Step 7 - Guarde el archivo en la carpeta del proyecto de demostración como Sample.sql.

Así es como se vería el script de la base de datos. Primero eliminaría una tabla existente si estuviera presente y luego volvería a crear la tabla.

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 - Ahora cambiemos rápidamente nuestro ASP.Net code para hacer referencia a la nueva base de datos.

Step 9 - En el Tutorial.cs archivo en su Demo project, agregue las siguientes líneas de código. Estas líneas de código se conectarán a su base de datos, tomarán la versión del servidor y almacenarán el nombre de la versión en la variable Nombre. Podemos mostrar esta variable de nombre en nuestroDemo.aspx.cs archivo a través de un Response.write mando.

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 - Agregue el siguiente código al Demo.aspx.cs para asegurarse de que muestre la versión de 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);
      }
   }
}

Ahora, si ejecutamos el código, obtendrá el siguiente resultado en el navegador.

Step 11- Ahora agreguemos nuestro paso en TeamCity que invocará el script de la base de datos. Vaya al panel de control de su proyecto y haga clic enEdit Configuration Settings.

Step 12 - Vaya a Pasos de compilación y haga clic en Add build step.

Elija las siguientes opciones (tenga en cuenta que el cliente MS SQL Server debe instalarse en el servidor CI).

  • El tipo de corredor debe ser la línea de comandos.

  • Dé un nombre de paso opcional.

  • Ejecutar debe ser ejecutable con parámetros.

  • El ejecutable del comando debe ser C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe

  • Los parámetros de comando deben ser -S WIN-50GP30FGO75 -i Sample.sql. Donde –S da el nombre de la instancia de SQL Server.

Step 13 - Haga clic en Guardar.

Ahora lo que se debe garantizar es el orden de construcción. Debe asegurarse de que el orden de construcción sea el siguiente.

Step 14 - Puede cambiar el orden de construcción eligiendo la opción para reordenar los pasos de construcción.

  • La configuración de la base de datos debe ser la primera, por lo que se utilizará para recrear su base de datos desde nueva.

  • Lo siguiente es la construcción de su aplicación.

  • Finalmente su configuración de prueba.

Step 15 - Ahora ejecuta el git add y git commit comando para que el Sample.sqlEl archivo está registrado en Git. Esto activará una compilación automáticamente. Y esta construcción debería pasar.

Ahora tiene un ciclo de construcción completo con un aspecto de integración continua de la base de datos también en su ciclo. En la siguiente sección, profundicemos en esto y veamos la implementación continua.

Ahora que ha hecho esto con un servidor SQL local, podemos repetir los mismos pasos para un AWS MS SQLServidor que se creó en una de las secciones anteriores. Para conectarse a Microsoft SQL Server, debe conectarse a través de la siguiente convención.

Step 16- Primero vea cuál es el nombre asignado a su instancia de base de datos en AWS. Cuando inicie sesión en AWS, vaya a la sección RDS en la sección de base de datos.

Step 17 - Haga clic en Instancias de base de datos en la siguiente pantalla que aparece.

step 18- Haga clic en su base de datos y anote el punto final. En la siguiente captura de pantalla, esdemodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 - Ahora para conectarse a la base de datos desde SQL Server Management Studio, debe especificar la conexión como demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (Tenga en cuenta la coma utilizada entre el nombre de la instancia y el número de puerto).

La siguiente captura de pantalla muestra una conexión exitosa a la base de datos.

Entonces puedes repetir todos los mismos pasos. losSqlcmd command será como sigue -

Este mismo comando se puede reemplazar en el paso de construcción de la base de datos en TeamCity. Cuando ejecuta elsqlcmd command, la tabla se creará automáticamente en su base de datos de SQL Server en AWS.