问题:是否可以管理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
答案 0 :(得分:1)
我不知道你在谈论什么。版本控制是版本控制。你可以用SVN做一些你无法用其他源代码控制系统做的事情,比如使用......宏扩展事物$author$
或类似的东西,但它仍然会对软件进行版本化。
我创建了一个包Package2,并为VersionComments,VersionMajor,VersionMinor显式分配了值。 VersionBuild是一个基于保存包的次数的自动增量数。
我将该软件包部署到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(和描述)都作为第一层元素公开。
这些与我的包裹记录的值相同。
注释表明一个软件包出现在一个地方,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
或类似的东西,因此我可以一目了然地看到该项目是否符合我的预期。
这也可以通过查询基表来导出,如
$Revision