当前您所在的位置:首页>新闻中心>新品发布
新品发布
行业动态
营销活动

Devart :如何使用Jenkins和dbForge自动进行数据库部署和发布?

发布时间:2021/05/11 浏览量:3221

CI流程介绍

如果不不断改进,现代软件开发过程是不可能的。 每次更改都会有多个版本,并且只有经过完整测试的完整版本才能投入生产。

持续集成(CI)是验证所有这些构建的创建和全面测试的过程。 这样,开发人员可以确保每个新更改都按计划进行,并且所有其他模块和功能也都正确。

该过程不能是手动的。 这将太长,麻烦且复杂。 反过来,持续集成的自动化提供了各种好处: 

开发人员有更多时间,因为他们无需手工制作数据库脚本并手动部署它们。

对于每个版本,任何问题或错误都易于检测。

只需单击几下鼠标,数据库部署就会变成一个简单的过程。

 

最大的优点是自动化消除了应用程序和数据库版本出错的风险。 后者至关重要,因为数据库是应用程序的核心。 丢失数据库中的任何错误都会导致更多问题。

 

Jenkins持续集成服务器的特殊性

关键要素是持续集成服务器。 它是管理构建,测试和部署它们,报告结果以及为开发人员和分析人员记录所有详细信息的动力。 在这项技术的领导者中,值得一提的是詹金斯(Jenkins)。

Jenkins CI服务器是一种非常流行的开源解决方案,具有广泛的自动化选项。 它还允许通过API和第三方构建工具集成其他应用程序,从而变得更强大。 许多专家认为Jenkins是CI服务器标准。

它在Java环境中运行,因此与Windows,Unix或Linux兼容。 由于具有开源特性,因此它是许多较小的公司的默认选择,这些公司可以下载并使用。 数量众多的库和插件使用户可以根据自己的所有需求以及任何复杂的操作来调整CI服务器的性能。

 

使用Devart dbForge插件在Jenkins上进行DevOps自动化

适用于SQL Server的Devart dbForge DevOps Automation确保Jenkins CI服务器的支持。 有一个专用插件来在Jenkins上建立和配置所有连续集成阶段:

构建阶段:该解决方案可确保将数据库部署在LocalDB或其他指定的SQL Server上。 它还从版本控制存储库生成NuGet软件包。

测试阶段:插件启动tSQLt单元测试并生成测试数据。

同步阶段:部署生成的NuGet软件包,并将其与工作数据库同步。

发布阶段:该工具将生成的NuGet包放入NuGet提要中以进行部署。

 

适用于SQL Server的Devart dbForge DevOps Automation可让用户降低数据库发布成本,提高更新质量和总体工作流程,并将部署错误的风险降至最低。 此外,我们将在实际情况下研究此插件的用法。

如果您从未使用过Devart产品,则需要将它们安装在用作构建代理的机器上。 选择以下选项之一(每种提到的工具都有功能齐全的试用版):

?dbForge SQL工具包包括在Jenkins CI服务器上设置DevOps所需的所有工具。

dbForge Studio for SQL Server是一个多功能的多用途解决方案,其中包括DevOps自动化功能。

最后,您可以使用专门用于执行DevOps任务的dbForge工具:SQL Server的dbForge Schema Compare,SQL Server的dbForge数据泵,SQL Server的dbForge数据生成器和SQL Server的dbForge单元测试。

 

此外,您还需要适用于SQL Server的dbForge DevOps Automation PowerShell-从PowerShell库中获取并安装。

 

安装插件

标准Jenkins集合中包含用于SQL Server的dbForge DevOps Automation插件。 因此,您可以按照与所有其他插件相同的方式来安装它。

1.在Jenkins主页窗口中,导航至Manage Jenkins> Manage Plugins:

image001.gif

2.在``可用''选项卡上,选择dbForge DevOps Automation for SQL Server插件(您可以使用``搜索''选项更快地找到它)。

3.然后,使用默认的Jenkins选项安装插件:

image002.gif

 

创建一个新的SQL CI作业

安装插件后,我们将创建一个持续集成作业。

1.导航到Jenkins主页>新建项目: 

image003.gif

2.为项目命名,指定项目类型,然后单击确定。

image004.gif

 

配置CI作业

1.输入项目描述并指定工作目录的路径:

image005.jpg

注意:Jenkins假定已经链接了版本控制系统以从脚本文件夹中提取更改。 如果没有,您可以安排将更改作为单独的Jenkins作业从VCS中提取。

 

2.配置构建触发器。 例如,您可以按计划设置构建作业:

image006.gif

 

构建数据库包

必需的工具:适用于SQL Server的dbForge Studio或适用于SQL Server的dbForge Schema Compare Pro。

在此阶段,您将构建数据库包并从服务器上的“脚本文件夹”部署它。 我们使用已安装的dbForge DevOps Automation for SQL Server插件。

 

1.单击``添加构建步骤''>``构建数据库软件包''(注意为该步骤定义的插件名称):

image007.gif

2.在``构建''窗口中,提供以下详细信息:

子文件夹位置与脚本文件夹有关。 确保在上一步中设置的路径正确。

系统将生成的NuGet软件包的Package ID。 该ID将是后续步骤的标识符。

将从源文件夹中部署数据库的临时数据库服务器的名称。

临时数据库名称将定义选择用于部署的数据库。

image008.jpg

 

使用tSQLt测试数据库

必备工具:适用于SQL Server的dbForge Studio或适用于SQL Server的dbForge Schema Compare Pro和适用于SQL Server的dbForge单元测试

单元测试在构建阶段验证部署在服务器上的SQL脚本。 配置过程:

单击添加构建步骤>使用tSQLt测试数据库:

image009.gif

2.在配置窗口中,指定在上一阶段也设置的Package ID,服务器和数据库名称:

image010.jpg

 

发布数据库包

必要工具:适用于SQL Server的dbForge Studio或适用于SQL Server的dbForge Schema Compare Pro

在此阶段,我们打包脚本文件夹并将NuGet包发布到指定的服务器上。 

 

1.单击添加构建步骤>发布数据库包:

image011.gif

2.在配置窗口中,定义Package ID并指定包的上传路径:

image012.gif

 

运行项目

从Jenkins主页手动运行该过程。 选择必要的项目,然后单击其旁边的图标,如下所示:

image013.gif

您可以在控制台输出上查看执行结果。 它提供了上述每个步骤(单元测试的结果或NuGet程序包发布结果)的常规信息和数据。

通过以下方式显示了从“脚本文件夹”创建数据库的结果:

image014.gif

将dbForge DevOps自动化插件用于Jenkins是许多专业人员所偏爱的方法。 插件步骤包括所有必要的命令,并按正确的顺序排列它们。 因此,不需要在作业配置期间手动输入它们,因为dbForge工具会关心它们。

但是,还有另一种方法也可用于自动化CI流程。 该方法使用Jenkins命令行界面。

 

使用dbForge工具和命令行在Jenkins上自动化数据库发布

为了完成这些工作,您将需要dbForge Studio for SQL Server,它具有使用命令行的所有必需功能。 或者,您可以使用单独的工具,与本文开头所定义的相同。

 

选择方法

要使用命令行自动执行CI作业,请导航到``添加构建步骤'',然后从下拉菜单中选择``运行超时'':

image015.gif

Jenkins将打开以下窗口来配置步骤:

image016.gif

选择这种方法还有一个额外的优势:您可以限制操作时间。 避免意外的挂起很方便。 此外,您可以在``高级''选项中检查已执行命令的ExitCode。

 

通过命令行自动化数据库发布

我们将使用一个简单的场景以及名为AdventureWorks2019的测试示例数据库。 当前,该数据库位于Git存储库中。 因此,我们需要执行以下步骤: 

 

1.将脚本文件夹下载到我们计算机的临时目录中。 在我们的例子中,目录为D:\ Temp \ DevOps \。 在Jenkins中执行以下CMD:

git clone https://github.com/svetlanafet/AdventureWorks2019.git D:\Temp\DevOps

2.使用对象创建AdventureWorks2019测试数据库。 对命令行执行以下SQL Server脚本。

dbForge Studio for SQL Server脚本:

cd "C:\Program Files\Devart\dbForge Studio for SQL server"
dbforgesql.com /execute /connection:"%user connection%" /inputfile "D:\Temp\DevOps\Create_AdventureWorks2019.sql"
dbforgesql.com /schemacompare /compfile:"D:\Temp\DevOps\AdventureWorks2019.scomp" /sync

dbForge Schema Compare for SQL Server脚本:

cd "C:\Program Files\Devart\dbForge Schema Compare for SQL Server"
schemacompare.com /execute /connection:"%user connection%" /inputfile "D:\Temp\DevOps\Create_AdventureWorks2019.sql"
schemacompare.com /schemacompare /compfile:"D:\Temp\DevOps\AdventureWorks2019.scomp" /sync

3.现在,我们可以将数据部署到数据库了。 列出的所有dbForge工具都通过CMD运行并参与自动化。

注意:首先,我们必须在dbForge Schema Compare for SQL Server中配置(scomp)模板文件。 必须将脚本文件夹与服务器同步。

 

生成测试数据

dbForge还提供了在运行tSQLt单元测试之前在Test阶段生成数据的功能。 当用户需要部署大数据量但他们无法或不会将所有这些数据存储在驱动器上时,此功能会派上用场。

在这里,我们需要使用所有设置和规则来配置(.dgen)项目文件,以用于生成测试数据(适用的工具是dbForge Data Generator for SQL Server)。 然后,您应该在VCS中找到该文件,以便系统为检出目录提供正确的路径。

对于dbForge Studio for SQL Server,使用以下命令将测试数据部署到表中:

dbforgesql.com /generate data /project file:"D:\Temp\DevOps\Addressr.dgen"

对于用于SQL Server的dbForge数据生成器,请使用以下命令:

datagenerator.com /generatedata /projectfile:"D:\Temp\DevOps\Addressr.dgen"

无论您是喜欢为Jenkins使用专用插件还是通过命令行自动执行数据库发布,都可以为SQL Server应用dbForge工具。 它们都可以正确地用于自动化目的,并帮助您消除烦人的例程。

 

北京哲想软件有限公司