Ciągła integracja - baza danych

Ciągła integracja z bazą danych to proces odbudowy bazy danych i danych testowych za każdym razem, gdy zmiana jest stosowana w repozytorium kontroli wersji projektu.

W przypadku integracji z bazą danych generalnie wszystkie artefakty związane z integracją bazy danych -

  • Powinien znajdować się w systemie kontroli wersji.
  • Można przetestować pod kątem rygoru i sprawdzić pod kątem zgodności z polityką.
  • Można wygenerować za pomocą skryptów kompilacji.

Czynności, które mogą być zaangażowane w ciągłą integrację bazy danych, mogą być dowolnymi z następujących:

Drop a Database - Usuń bazę danych i usuń powiązane dane, aby móc utworzyć nową bazę danych o tej samej nazwie

Create a new Database - Utwórz nową bazę danych przy użyciu języka definicji danych (DDL).

Insert the Initial Data - Wstaw wszelkie dane początkowe (np. Tabele wyszukiwania), które system ma zawierać po dostarczeniu.

Migrate Database and Data - Dokonuj okresowej migracji schematu bazy danych i danych (jeśli tworzysz system oparty na istniejącej bazie danych).

Modify Column Attributes - Zmodyfikuj atrybuty i ograniczenia kolumn tabeli w oparciu o wymagania i refaktoryzację.

Modify Test Data - Zmień dane testowe w razie potrzeby dla wielu środowisk.

Tak więc w naszym przykładzie ciągłej bazy danych wykonamy następujące kroki -

  • Stworzymy bazę danych MS SQL Server i odpowiednią tabelę.

  • Stworzymy skrypt z SQL Server Management Studio. Ten skrypt bazy danych zostanie użyty do ustawienia naszej tabeli w bazie danych.

  • Napiszemy kod w naszym projekcie ASP.Net, aby uzyskać dostęp do tej bazy danych.

  • Stworzymy krok w naszym projekcie w TeamCity, aby uruchomić ten skrypt.

  • Sprawdzimy nasz skrypt w Git.

Kroki, aby to zrobić w bazie danych AWS, która została utworzona we wcześniejszej sekcji.

Step 1- Utwórz bazę danych MS SQL Server i odpowiednią tabelę. Otwórzmy SQL Server Management Studio i stwórzmy prostą bazę danych i tabelę. Kliknij prawym przyciskiem myszy bazy danych i kliknijNew Database.

Step 2 - Nazwij to jako Demodb i kliknij OK

Step 3 - W nowej bazie danych kliknij prawym przyciskiem myszy i utwórz nową tabelę.

Step 4 - Możesz dodać żądane kolumny do tabeli.

Step 5 - Zapisz tabelę i nazwij ją jako Demotb.

Step 6 - Teraz kliknij prawym przyciskiem myszy stół i wybierz opcję menu Script Table as → Drop and Create to → File.

Step 7 - Zapisz plik w folderze projektu demonstracyjnego jako Sample.sql.

Tak wyglądałby skrypt bazy danych. Najpierw usunie istniejącą tabelę, jeśli jest obecna, a następnie ponownie utworzy tabelę.

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 - Teraz szybko zmieńmy nasze ASP.Net code aby odwołać się do nowej bazy danych.

Step 9 - W Tutorial.cs plik w swoim Demo projectdodaj następujące wiersze kodu. Te wiersze kodu będą łączyć się z bazą danych, pobierać wersję serwera i przechowywać nazwę wersji w zmiennej Name. Możemy wyświetlić tę zmienną Name w naszymDemo.aspx.cs plik za pośrednictwem pliku Response.write Komenda.

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 - Dodaj następujący kod do pliku Demo.aspx.cs plik, aby upewnić się, że wyświetla wersję programu 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);
      }
   }
}

Teraz, jeśli uruchomimy kod, w przeglądarce pojawi się następujący wynik.

Step 11- Teraz dodajmy nasz krok w TeamCity, który wywoła skrypt bazy danych. Przejdź do pulpitu nawigacyjnego projektu i kliknijEdit Configuration Settings.

Step 12 - Przejdź do kroków tworzenia i kliknij Add build step.

Wybierz następujące opcje (zwróć uwagę, że klient MS SQL Server powinien być zainstalowany na serwerze CI).

  • Typ biegacza powinien być wierszem poleceń.

  • Podaj opcjonalną nazwę kroku.

  • Run powinien być wykonywalny z parametrami.

  • Plik wykonywalny polecenia powinien być C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe

  • Parametry polecenia powinny być -S WIN-50GP30FGO75 -i Sample.sql. Gdzie –S podaje nazwę instancji SQL Server.

Step 13 - Kliknij Zapisz.

Teraz należy zapewnić kolejność budowania. Musisz upewnić się, że kolejność budowania jest następująca.

Step 14 - Możesz zmienić kolejność budowania, wybierając opcję zmiany kolejności kroków budowania.

  • Konfiguracja bazy danych powinna być pierwsza - więc zostanie ona użyta do odtworzenia bazy danych z nowej wersji.

  • Dalej jest kompilacja Twojej aplikacji.

  • Wreszcie twoja konfiguracja testowa.

Step 15 - Teraz uruchom git add i git commit polecenie, aby Sample.sqlplik jest wpisywany do Gita. Spowoduje to automatyczne uruchomienie kompilacji. Ta kompilacja powinna przejść.

Masz teraz pełnoprawny cykl kompilacji z aspektem ciągłej integracji bazy danych, również w swoim cyklu. W następnej sekcji przejdźmy dalej i spójrzmy na ciągłe wdrażanie.

Teraz, gdy już to zrobiłeś z lokalnym serwerem SQL, możemy powtórzyć te same kroki dla pliku AWS MS SQLSerwer, który został utworzony w jednej z wcześniejszych sekcji. Aby połączyć się z serwerem Microsoft SQL Server, musisz połączyć się zgodnie z następującą konwencją.

Step 16- Najpierw sprawdź, jaka jest nazwa przypisana do Twojej instancji bazy danych w AWS. Po zalogowaniu się do AWS przejdź do sekcji RDS w sekcji bazy danych.

Step 17 - Kliknij DB Instances na następnym ekranie, który się pojawi.

step 18- Kliknij swoją bazę danych i zanotuj punkt końcowy. Na poniższym zrzucie ekranu tak jestdemodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 - Teraz, aby połączyć się z bazą danych z SQL Server Management Studio, musisz określić połączenie jako demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (Zwróć uwagę na przecinek użyty między nazwą instancji a numerem portu).

Poniższy zrzut ekranu przedstawia pomyślne połączenie z bazą danych.

Następnie możesz powtórzyć wszystkie te same kroki. PlikSqlcmd command będzie następująca -

To samo polecenie można zastąpić w kroku tworzenia bazy danych w TeamCity. Kiedy wykonujeszsqlcmd command, tabela zostanie utworzona automatycznie w bazie danych SQL Server w AWS.