问题描述
此 DACPAC 用于测试部署;但是我们一直无法将它用于生产部署,因为不知何故所有生产数据库都失去了同步。我打算在 Visual Studio 中运行 Schema Compare 依次将每个数据库与 DACPAC 进行比较并记下所有差异,但差异比我预期的要多得多,而且需要很长时间才能将它们全部写下来。有没有办法为每个数据库生成一份报告,详细说明该数据库中所有数据库对象与 DACPAC 之间的差异?
解决方法
SqlPackage.exe 是 Visual Studio Schema Compare 使用的部署引擎,它还有其他选项:
SqlPackage.exe 是一个命令行实用程序,可自动执行以下操作 数据库开发任务:
Version:返回 SqlPackage 应用程序的内部版本号。添加 在 18.6 版本中。
Extract:创建一个数据层应用程序 (.dacpac) 文件,其中包含 模式或模式和来自连接的 SQL 数据库的用户数据。
发布:增量更新数据库架构以匹配架构 .dacpac 源文件。如果数据库不存在于 服务器,发布操作创建它。否则,现有 数据库已更新。
导出:导出连接的 SQL 数据库 - 包括数据库架构 和用户数据 - 到 BACPAC 文件 (.bacpac)。
导入:将架构和表数据从 BACPAC 文件导入到 新用户数据库。
DeployReport:创建将要进行的更改的 XML 报告 通过发布操作。
DriftReport:创建已进行更改的 XML 报告 自上次注册以来已注册的数据库。
Script:创建一个 Transact-SQL 增量更新脚本,用于更新 目标的架构以匹配源的架构。
SqlPackage.exe 命令行允许您指定这些操作 连同特定于动作的参数和
,有一个新的 Powershell 模块:DACPACComparator https://www.powershellgallery.com/packages/DacpacComparator/2.0 比较 2 DACPAC 并为您提供差异。 你可以利用它。