📅  最后修改于: 2020-12-07 05:17:57             🧑  作者: Mango
持续数据库集成是每当对项目的版本控制存储库进行更改时,就重建数据库和测试数据的过程。
在数据库集成中,通常所有与数据库集成有关的工件-
连续数据库集成中可能涉及的活动可以是以下任意一项:
删除数据库-删除数据库并删除关联的数据,以便您可以创建一个具有相同名称的新数据库
创建一个新数据库-使用数据定义语言(DDL)创建一个新数据库。
插入初始数据-插入系统交付时应包含的任何初始数据(例如,查找表)。
迁移数据库和数据-定期迁移数据库架构和数据(如果要基于现有数据库创建系统)。
修改列属性-根据需求和重构来修改表列属性和约束。
修改测试数据-根据多个环境的需要更改测试数据。
因此,在我们的连续数据库示例中,我们将执行以下步骤-
我们将创建一个MS SQL Server数据库和一个对应的表。
我们将使用SQL Server Management Studio创建脚本。该数据库脚本将用于在数据库中设置表。
我们将在ASP.Net项目中编写代码以访问该数据库。
我们将在TeamCity的项目中创建一个步骤来运行此脚本。
我们将把脚本签入Git。
在上一部分中创建的AWS数据库中执行此操作的步骤。
步骤1-创建一个MS SQL Server数据库和相应的表。让我们打开SQL Server Management Studio并创建一个简单的数据库和表。右键单击数据库,然后单击新建数据库。
步骤2-将其命名为Demodb ,然后单击确定
步骤3-在新数据库中,右键单击并创建一个新表。
步骤4-您可以将所需的列添加到表中。
步骤5-保存表并将其命名为Demotb 。
步骤6-现在右键单击表,然后选择菜单选项脚本表为→拖放并创建到→文件。
步骤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
步骤8-现在让我们快速更改我们的ASP.Net代码以引用新数据库。
步骤9-在演示项目的Tutorial.cs文件中,添加以下代码行。这些代码行将连接到数据库,获取服务器版本并将版本名称存储在Name变量中。我们可以通过Response.write命令在Demo.aspx.cs文件中显示此Name变量。
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();
}
}
}
}
步骤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);
}
}
}
现在,如果我们运行代码,您将在浏览器中获得以下输出。
步骤11-现在让我们在TeamCity中添加步骤,该步骤将调用数据库脚本。转到项目仪表板,然后单击“编辑配置设置” 。
步骤12-转到构建步骤,然后单击添加构建步骤。
选择以下选项(请注意,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实例的名称。
步骤13-单击保存。
现在需要确保的是构建顺序。您必须确保构建顺序如下。
步骤14-您可以通过选择重新排序构建步骤的选项来更改构建顺序。
首先应该建立数据库–因此,它将用于重新创建数据库。
接下来是您的应用程序的构建。
最后是您的测试设置。
步骤15-现在运行git add和git commit命令,以便将Sample.sql文件签入Git。这将自动触发构建。这个构建应该通过。
现在,您已经拥有了一个完整的构建周期,并且在您的周期中还具有持续的数据库集成方面。在下一节中,让我们进一步研究一下持续部署。
现在,您已经使用本地SQL Server完成了此操作,我们可以对在先前部分之一中创建的AWS MS SQL Server重复相同的步骤。要连接到Microsoft SQL Server,您需要通过以下约定进行连接。
步骤16-首先查看在AWS中分配给您的数据库实例的名称是什么。登录到AWS时,转到数据库部分下的RDS部分。
步骤17-在出现的下一个屏幕中,单击数据库实例。
步骤18-单击您的数据库并记下端点。在以下屏幕截图中,它是demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com:1433
步骤19-现在要从SQL Server Management Studio连接到数据库,您需要将连接指定为demodb.cypphcv1d87e.ap-southeast-1.rds.amazonaws.com,1433 (请注意,实例名称和端口号之间使用逗号分隔)。
以下屏幕快照显示了与数据库的成功连接。
然后,您可以重复所有相同的步骤。 Sqlcmd命令将如下所示-
可以在TeamCity的“数据库构建”步骤中替换此命令。当执行sqlcmd命令时,将在AWS的SQL Server数据库中自动创建表。