VS2017 SSIS版本控制用于颠覆和/或BitBucket

时间:2018-06-07 21:59:12

标签: visual-studio svn ssis version-control tortoisesvn

问题:是否可以管理SSIS项目/包的版本控制?如果是,哪个工具:SVN / BitBucket,VS2017或SQL Server?

上下文:我的雇主目前使用subversion(SVN),但正在转向BitBucket。据我所知,SVN不处理SSIS项目/包版本控制。现在,在VS2017的SSIS解决方案中,我可以修改项目版本并设置Major,Minor和Build数字(我已将其设置为1.0.0)。但是,当我构建解决方案时,值将重置为0(即0.0.0)。此外,当我将项目部署到Integration Services目录,并且我查询表(请参阅下面的查询)时,Major,Minor和Build设置为1.0.125。我不明白为什么该项目没有反映这些价值观。

因此,除了部署之外,似乎无法追踪;获取版本信息;将其包含在SVN的登记注释中。否?

SELECT *
FROM SSISDB.internal.packages

1 个答案:

答案 0 :(得分:1)

我不知道你在谈论什么。版本控制是版本控制。你可以用SVN做一些你无法用其他源代码控制系统做的事情,比如使用......宏扩展事物$author$或类似的东西,但它仍然会对软件进行版本化。

我创建了一个包Package2,并为VersionComments,VersionMajor,VersionMinor显式分配了值。 VersionBuild是一个基于保存包的次数的自动增量数。

package properties

我将该软件包部署到SQL Server软件包存储(msdb),然后将项目部署到Integration Services Catalog(SSISDB)。然后我运行以下查询来检查数据。

SELECT
    S.name
,   S.description
,   S.vermajor
,   S.verminor
,   S.verbuild
,   S.vercomments
FROM
    msdb.dbo.sysssispackages AS S
WHERE
    S.name = 'Package2';

SELECT
    P.name
,   P.description
,   P.version_major
,   P.version_minor
,   P.version_build
,   P.version_comments
FROM
    SSISDB.catalog.packages AS P
WHERE
    P.name = 'Package2.dtsx';

正如您在结果中看到的那样,VersionBuild / VersionComments / VersionMajor / VersionMinor(和描述)都作为第一层元素公开。

enter image description here

这些与我的包裹记录的值相同。

注释表明一个软件包出现在一个地方,SSISDB而不是msdb。

这与包部署模型与项目部署模型的设计选择有关。

软件包部署是SQL Server 2012之前的唯一选择。软件包部署可以转到SQL Server,如果是,它将在msdb中找到名称以{开头的表格{1}}(实际名称在2005年,2008年/ r2之间变化)。否则,它们将在某个文件系统上。对于当前的2017版本,包部署仍然是一个选项。

项目部署在2012年是新的,并成为默认选项。它解决了许多与软件包有关的管理问题。相反,项目被视为一个整体,不可分割的单位,而不是N SSIS包。项目被“编译”为具有.ispac扩展名的可部署单元(带有清单的zip文件)。然后,.ispac文件通常通过isdeploymentwizard.exe

部署到SSISDB中

Incremental Package Deployment功能仍然使用项目部署模型 * ,因此您的包将存储在SSISDB中。

SSISDB UI公开了一个项目的“属性”菜单,指示名称,ID,描述,项目版本和部署日期。由于这很容易被查看,我曾经将项目描述设置为syspackages或类似的东西,因此我可以一目了然地看到该项目是否符合我的预期。

enter image description here

这也可以通过查询基表来导出,如

$Revision
  • 有趣的技巧,增量包部署功能将在您部署到SSISDB时为您创建项目。因此,您可以获得项目部署模型的管理细节,同时将项目保留在软件包部署模型中。