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.