📜  持续集成-数据库

📅  最后修改于: 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 addgit commit命令,以便将Sample.sql文件签入Git。这将自动触发构建。这个构建应该通过。

示例SQL

现在,您已经拥有了一个完整的构建周期,并且在您的周期中还具有持续的数据库集成方面。在下一节中,让我们进一步研究一下持续部署。

现在,您已经使用本地SQL Server完成了此操作,我们可以对在先前部分之一中创建的AWS MS SQL Server重复相同的步骤。要连接到Microsoft SQL Server,您需要通过以下约定进行连接。

步骤16-首先查看在AWS中分配给您的数据库实例的名称是什么。登录到AWS时,转到数据库部分下的RDS部分。

数据库部分下的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命令将如下所示-

SQL cmd命令

可以在TeamCity的“数据库构建”步骤中替换此命令。当执行sqlcmd命令时,将在AWS的SQL Server数据库中自动创建表。

数据库构建步骤