持续集成 – 数据库
持续集成 – 数据库
持续数据库集成是在对项目的版本控制存储库应用更改时重建数据库和测试数据的过程。
在数据库集成中,通常所有与数据库集成相关的工件 –
- 应该驻留在版本控制系统中。
- 可以进行严格性测试和政策合规性检查。
- 可以使用您的构建脚本生成。
可以参与持续数据库集成的活动可以是以下任何一项 –
删除数据库– 删除数据库并删除关联的数据,以便您可以创建一个具有相同名称的新数据库
创建新数据库– 使用数据定义语言(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 – 现在右键单击表格并选择菜单选项Script Table as → Drop and Create to → File。
步骤 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 中添加我们的步骤,它将调用数据库脚本。转到您的项目仪表板并单击Edit Configuration Settings。
步骤 12 – 转到构建步骤并单击添加构建步骤。
选择以下选项(请注意,应在 CI 服务器上安装 MS SQL Server 客户端)。
-
Runner 类型应该是命令行。
-
提供一个可选的步骤名称。
-
运行应该是带有参数的可执行文件。
-
命令可执行文件应该是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 数据库中自动创建。