gpt4 book ai didi

powershell - 使用 DACFx 3.0 API 升级 DACPAC - 如何检查现有数据库的当前 DAC 版本?

转载 作者:行者123 更新时间:2023-12-01 03:54:33 27 4
gpt4 key购买 nike

我目前正在重写我团队的数据库部署 Powershell 脚本以使用 DACFx 3.0 API 而不是 2.0。我使用新的 Microsoft.SqlServer.Dac.DacServices 成功地使 DACPAC 升级成功工作。 Controller 类。

剩下的唯一问题是:如何从现有数据库中获取当前的 DACPAC 版本号?

作为部署脚本的一部分,我们将其与我们要升级到的 DACPAC 版本进行比较,以确定是否需要部署。这也用于决定是否运行与数据库相关的测试,因此我们通过这种方式减少了大量的构建时间。

旧的 DacFx2.0 API 位于 Microsoft.SqlServer.Management.Dac命名空间,所以在旧的 Powershell 脚本中我们简单地创建了一个 DacStore对象并从它获取 Version 属性:

我们的旧 POWERSHELL 脚本

$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)
Write-Host "The following data-tier applications (instances) exist in the DAC store:"
foreach($dacInstance in $dacStore.DacInstances)
{
Write-Host Instance Name: $dacInstance.Name
Write-Host DAC Type Application Name: $dacInstance.Type.Name
Write-Host DAC Type Version: $dacInstance.Type.Version <--- **** this is what I need ****
}
...

现在在 3.0 中的问题,API 位于 Microsoft.SqlServer.Dac命名空间,并且“不是使用以前版本中的 DacStoreDacExtractionUnit 类,大多数所有内容都已重构为全新的 DacServices Controller 类。( src )”

我还没有找到等效的 DacStoreDacServices类,所以现在我不知道如何检索当前的 DAC 版本。 我试过搜索 MSDN 文档,但他们所有的 Powershell 部分仍然引用了旧的 DACFx2.0 API。 (例如: here )。

如果有人可以帮助我,将不胜感激。谢谢!

最佳答案

刚刚收到微软的回复:

The Dac 3.0 API doesn't have this capability as you've discovered. Use T-SQL to select this data directly from dbo.sysdac_instances.



看来这实际上是唯一的方法: http://msdn.microsoft.com/en-us/library/ee240830.aspx
所以我现在会查询该 View ,尽管我真的很想看到它在某个时候被引入 DACFx API。注意 View dbo.sysdac_instances 大师数据库,因为 msdb 在 SQL Azure 中不存在。

关于powershell - 使用 DACFx 3.0 API 升级 DACPAC - 如何检查现有数据库的当前 DAC 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com