从主数据库中提取DACPAC

问题描述 投票:1回答:1

我正在努力将现有的Azure V12数据库引入SSDT项目,以便我们可以开始使用源代码管理和CI管道。

我正在努力解决的问题是在某些代码中引用了“sys.fn_get_audit_file”,它给出了“未解析的引用”错误。我不希望在构建项目时忽略任何错误,所以一直试图正确解决这个问题。向master添加数据库引用并不能解决问题,而且SSDT附带的master.dacpac文件似乎没有该sys函数的定义(在model.xml中)。我检查了VS文件夹中可用的所有版本的master.dacpac文件,甚至尝试了VS 2019预览,看看是否有更新版本的master.dacpac。

在网上挖掘我意识到其他人在master.dacpac中缺少对象的类似问题,建议的解决方案是编辑model.xml,重新打包并更正校验和。我宁愿不去那条路,所以我尝试使用SqlPackage从Azure中的主数据库中提取DACPAC,但提取的模型几乎没有对象定义。

有什么建议?

azure-sql-database sql-server-data-tools sqlpackage
1个回答
0
投票

有人应该在微软的团队中提出它 - 我知道他们在这里监控所以也许有人可以帮忙吗?

与此同时,它看起来像天蓝色支持fn_get_audit_file,无论如何根据文档。

我已经创建了几个dacpac,欢迎您使用,有旧的天蓝色版本:

https://the.agilesql.club/assets/dacpacs/azure/master.dacpac

和v12版本:

https://the.agilesql.club/assets/dacpacs/azurev12/master.dacpac

我所做的是从我的机器中取出现有的azure master dacpac(vs 2017)并添加非天蓝版本的sys.fn_get_audit_sql元素。

为此,我使用7zip解压缩model.xml,然后编辑xml文件并将model.xml文件复制回dacpac。

这会导致模型具有错误的校验和,所以我有一个小应用程序,用正确的校验和重写origin.xml,如果有人想要它,我会把这个应用程序放在github上,但是这是一个版本:

https://github.com/GoEddie/Dacpac-References/tree/master/src/GOEddie.Dacpac.References

https://github.com/GoEddie/Dacpac-References/blob/master/src/GOEddie.Dacpac.References/ModelChecksumWriter.cs

当我拥有master.dacpac时,我将它们复制回VS 2017:

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Commnuity \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12

(取决于版本)

这让我在azure / azurev12项目中使用fn_get_audit_sql:

enter image description here

希望能帮助到你!

© www.soinside.com 2019 - 2024. All rights reserved.