Rya*_*ind 5 sql-server powershell visual-studio sqlpackage sql-server-data-tools
我正在使用 sqlpackage 实用程序和 MSBuild 从我们的数据库和数据库项目生成源和目标 .dacpac 文件。我知道我可以生成发布脚本,甚至可以制作部署报告,但这些报告只是高级别的报告。我想要做的是能够提供一份报告,准确地向我展示这两个 dacpac 之间的差异。例如,生成的发布脚本和 DeployReport.xml 向我显示特定的存储过程已更改并将被覆盖,但它没有向我显示存储过程的哪些行已更改,并且由于它是一个非常长的存储过程,手动解决这个问题需要相当多的努力。
到目前为止,我已经尝试从 .dacpac 文件中提取包含的 model.xml 并使用 Diff 工具将我的 source.dacpac 中的 model.xml 与 target.dacpac 进行比较,但是如果一个是从实时数据库生成的,并且其他是从数据库项目构建的,不幸的是,它们差异太大,无法向我展示有用的视觉效果。
在 Visual Studio 中,我当然可以打开“架构比较”工具并以这种方式比较我的 dacpac,但这过于手动,我正在寻找更自动化的解决方案。至少,从命令行触发此“模式比较”的方法会很好。
比较两个 dacpac 文件并详细显示它们之间的差异的最佳方法是什么?即这 5 个存储过程发生了变化,并直观地向我展示这 5 个存储过程中的每一个中哪些行发生了变化?我可以将某种解决方案用管道胶带粘在一起,但我无法购买任何第三方工具,我受制于 MS 提供的功能和我自己有限的功能。
我认为您正在寻找错误的工具。
如果您想查看特定存储过程的代码随时间变化的差异,您应该在源代码管理(如 git 或 TFS)中注册您的数据库项目,然后您可以获得更改内容和时间的详细报告。
它不仅会告诉您两个版本之间的差异,您还可以看到哪个开发人员在何时编写了特定行,或者随着时间的推移汇总您的更改。
有很多选项可用于标记您在存储库中创建 dacpac 的时间,并获取详细报告,您将向存储库询问两个提交或版本之间的差异。
您可以在此处阅读有关免费 azure 私有 Git 存储库的信息: https ://azure.microsoft.com/en-us/services/devops/repos/
| 归档时间: |
|
| 查看次数: |
2442 次 |
| 最近记录: |