【问题标题】:SSIS single package deployment deleting other packages?SSIS单包部署删除其他包?
【发布时间】:2021-10-08 17:06:29
【问题描述】:

我们在 Visual Studio(2019 社区)中有一个 SSIS 项目,我们使用项目部署将其部署到我们的 SQL 服务器(2016)。我们有几百个包,而且我们通常一次部署一个包。

我们一直在单个 Azure Git 主分支中进行大部分开发,因为这些更改与我们的大多数其他开发是分开的。在不同的开发分支中进行了一些更改,然后从那里部署了单个包。它不应该引起问题,因为该单个包是新的并且根本没有在 master 中使用。但是,当部署该单个包时,它会从我们的实时服务器中删除几个新包,这些包已从主分支部署但最初创建时并未在开发分支中。

我认为单个包部署只部署了您选择的单个包或您选择的几个包(如果您选择了其中几个包)。似乎除了部署该软件包之外,它还删除了实时服务器上但不在我们部署的 dev 分支中的软件包。

我们通过右键单击一个或多个包,然后从上下文菜单中选择“部署包”来从 Visual Studio 进行部署。当我们部署到开发 SQL Server 时,该过程会创建一个 .ispac 文件。该 .ispac 文件被复制到实时服务器,然后直接在实时 SQL 服务器上运行。

这不应该部署所有包,对吗?只是那些突出显示的?如果我一次只部署一个包,但我在 VS 中的项目中的包与 SSIS 目录中的项目不匹配,它会删除丢失的包吗?

【问题讨论】:

    标签: ssis visual-studio-2019 sql-server-2016 azure-git-deployment


    【解决方案1】:

    视情况而定!

    对于 2012 年和 2014 年,部署到 SSISDB 的唯一选项是“项目”部署。整个 .ispac 文件都应用于 SSISDB - 无论 package1 是否已更改。

    使用 2016+,您可以进行项目或增量包部署。在部署向导的“Review”选项卡中,在 Summary 部分中,您可以看到命令行指示 /ModelType:Package 这表明它正在部署包而不是整个项目。参见图 5 https://www.sqlservercentral.com/articles/incremental-package-deployment-%E2%80%93-a-ssis-2016-feature

    如果您从 .ispac 进行部署,那么“选择源”选项卡中应该有一个选择器(参考文章中未显示),它允许您进行完全或增量部署,但“审查”选项卡中的 ModelType 将识别哪个选择了方法。我怀疑有人进行了完整/项目部署。

    但是,SSISDB 的好处是您可以使用 SSMS 将项目回滚到以前的状态,这样就不会造成伤害、犯规、丢失包。

    【讨论】:

    • 我重新创建了同样的问题。我没有进行完整的部署,但它肯定会剥离掉那些丢失的其他包。这就是为什么这没有意义。这是我们经常做的事情,主要区别是将分支切换到缺少一些已经部署的新包的分支。当我们在下一次主要生产发布后合并分支时,这一切都会自行解决。但是,我试图弄清楚为什么它会删除未选择更新的包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 2011-04-20
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多