3

是否可以在不部署数据库的情况下针对数据库测试 DACPAC?如果没有发现错误,带有 Action=Deploy 的 sqlpackage.exe 将部署它,并且 Action=Report 只会生成包含更改列表的报告,但部署仍然可能失败。

4

1 回答 1

1

文档说:

SqlPackage.exe 发布操作以增量方式更新目标数据库的架构以匹配源数据库的结构。

因此,操作的成功取决于要更新的​​数据库的当前状态。例如,DAC 包定义了下表:

table MyTable (
    X int not null
);

而表的当前定义是

table MyTable (
    X int null
);

如果该列X不包含nulls,则部署成功,否则部署失败。因此,有几种方法可以在发布到生产之前检查部署。

  1. 使用Script操作创建一个脚本,该脚本更新目标架构以匹配源架构。之后,您可以分析脚本以找出实际部署过程中可能出现的故障。
  2. 使用测试环境。您还可以使用备份或BACPAC文件复制生产数据库并将其用作部署目标。
于 2021-09-18T18:20:56.827 回答