Непрерывная интеграция - база данных
Непрерывная интеграция базы данных - это процесс восстановления вашей базы данных и тестовых данных каждый раз, когда в репозиторий управления версиями проекта вносятся изменения.
В интеграции базы данных, как правило, все артефакты, связанные с интеграцией базы данных -
- Должен находиться в системе контроля версий.
- Могут быть проверены на строгость и проверены на соответствие политике.
- Может быть сгенерирован с использованием ваших сценариев сборки.
Действия, которые могут быть задействованы в непрерывной интеграции базы данных, могут быть одним из следующих:
Drop a Database - Отбросьте базу данных и удалите связанные данные, чтобы вы могли создать новую базу данных с тем же именем.
Create a new Database - Создайте новую базу данных с помощью языка определения данных (DDL).
Insert the Initial Data - Вставьте любые исходные данные (например, таблицы поиска), которые, как ожидается, ваша система будет содержать при доставке.
Migrate Database and Data - Периодически переносите схему базы данных и данные (если вы создаете систему на основе существующей базы данных).
Modify Column Attributes - Измените атрибуты столбцов таблицы и ограничения на основе требований и рефакторинга.
Modify Test Data - При необходимости измените тестовые данные для нескольких сред.
Итак, в нашем примере с непрерывной базой данных мы собираемся сделать следующие шаги:
Создадим базу данных MS SQL Server и соответствующую таблицу.
Мы создадим сценарий из SQL Server Management Studio. Этот сценарий базы данных будет использоваться для создания нашей таблицы в базе данных.
Мы напишем код в нашем проекте ASP.Net для доступа к этой базе данных.
Мы создадим в нашем проекте в TeamCity шаг для запуска этого скрипта.
Мы проверим наш скрипт в Git.
Шаги для этого в базе данных AWS, созданной в предыдущем разделе.
Step 1- Создать базу данных MS SQL Server и соответствующую таблицу. Давайте откроем SQL Server Management Studio и создадим простую базу данных и таблицу. Щелкните базы данных правой кнопкой мыши и выберитеNew Database.

Step 2 - Назовите это как Demodb и нажмите ОК

Step 3 - В новой базе данных щелкните правой кнопкой мыши и создайте новую таблицу.

Step 4 - Вы можете добавить желаемые столбцы в таблицу.

Step 5 - Сохраните таблицу и назовите ее как Demotb.
Step 6 - Теперь щелкните правой кнопкой мыши стол и выберите пункт меню. Script Table as → Drop and Create to → File.

Step 7 - Сохраните файл в папку демонстрационного проекта как Sample.sql.

Вот как будет выглядеть сценарий базы данных. Сначала будет удалена существующая таблица, если она есть, а затем таблица будет создана заново.
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 - А теперь давайте быстро изменим наш ASP.Net code для ссылки на новую базу данных.
Step 9 - В Tutorial.cs файл в вашем Demo projectдобавьте следующие строки кода. Эти строки кода будут подключаться к вашей базе данных, принимать версию сервера и сохранять имя версии в переменной Name. Мы можем отобразить эту переменную Name в нашемDemo.aspx.cs файл через Response.write команда.
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 - Добавьте следующий код в Demo.aspx.cs файл, чтобы убедиться, что он отображает версию 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);
}
}
}
Теперь, если мы запустим код, вы получите следующий результат в браузере.

Step 11- Теперь давайте добавим наш шаг в TeamCity, который будет вызывать скрипт базы данных. Перейдите на панель управления проекта и нажмитеEdit Configuration Settings.

Step 12 - Перейдите к этапам сборки и щелкните Add build step.

Выберите следующие параметры (обратите внимание, что клиент MS SQL Server должен быть установлен на CI Server).
Тип бегуна должен быть командной строкой.
Укажите необязательное Имя шага.
Запуск должен быть исполняемым с параметрами.
Исполняемый файл команды должен быть C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqlcmd.exe
Параметры команды должны быть -S WIN-50GP30FGO75 -i Sample.sql. Где –S дает имя экземпляра SQL Server.
Step 13 - Щелкните Сохранить.

Теперь необходимо обеспечить порядок сборки. Вы должны убедиться, что порядок сборки следующий.
Step 14 - Вы можете изменить порядок сборки, выбрав опцию изменения порядка этапов сборки.
Настройка базы данных должна быть первой - так что она будет использоваться для воссоздания вашей базы данных из свежего.
Далее идет сборка вашего приложения.
Наконец-то ваша тестовая установка.

Step 15 - Теперь запустите git add а также git commit команда так, чтобы Sample.sqlфайл зарегистрирован в Git. Это автоматически запустит сборку. И эта сборка должна пройти.

Теперь у вас есть полноценный цикл сборки с аспектом непрерывной интеграции базы данных в вашем цикле. В следующем разделе давайте продолжим и рассмотрим непрерывное развертывание.
Теперь, когда вы сделали это с локальным SQL Server, мы можем повторить те же шаги для AWS MS SQLСервер, созданный в одном из предыдущих разделов. Чтобы подключиться к Microsoft SQL Server, вам необходимо подключиться согласно следующему соглашению.
Step 16- Сначала посмотрите, какое имя присвоено вашему экземпляру базы данных в AWS. При входе в AWS перейдите в раздел RDS под разделом базы данных.

Step 17 - Нажмите «Экземпляры БД» на следующем появившемся экране.

step 18- Щелкните свою базу данных и запишите конечную точку. На следующем снимке экрана этоdemodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433

Step 19 - Теперь для подключения к базе данных из SQL Server Management Studio, вам нужно указать соединение как demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (Обратите внимание на запятую, используемую между именем экземпляра и номером порта).

На следующем снимке экрана показано успешное подключение к базе данных.

Затем вы можете повторить все те же действия. ВSqlcmd command будет следующим -

Эту же команду можно заменить на этапе сборки базы данных в TeamCity. Когда вы выполняетеsqlcmd command, таблица будет автоматически создана в вашей базе данных SQL Server в AWS.
