微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 SQL Server 部署中使用 DACPAC 有哪些限制

如何解决在 SQL Server 部署中使用 DACPAC 有哪些限制

我正在探索 sql Server 数据库部署中的 DACPAC 功能

我正在使用 EXTRACT 操作获取从源生成的 DACPAC,并使用 PUBLISH 操作将其部署到目标。

提取

sqlpackage.exe /Action:Extract /SourceDatabaseName:%sourcedatabaseName% /SourceServerName:%sourceserverName% /TargetFile:%FilePath%

发布

sqlpackage.exe /Action:Publish /SourceFile:%sourceFile% /TargetServerName:%serverName% /TargetDatabaseName:%databaseName%

在这里,当我在进行 DACPAC 部署时在源表中引入了新列时,它工作正常。新列反映在目标中。

但是,当我删除源中的列并进行 DACPAC 部署时,不会反映更改。该列未落入目标中。是因为我在那一列有数据吗?

在另一种情况下,我在源中有一些测试表和测试存储过程,当我生成 DACPAC 并进行部署时,相同的测试表和存储过程会部署到目标中。有没有办法限制这个?

那么想了解使用 DACPAC 的所有限制是什么?

使用 sql Server 2019。

解决方法

从非空表中删除列可能会导致数据丢失。

它可以被覆盖:/p:BlockOnPossibleDataLoss=false

DacDeployOptions.BlockOnPossibleDataLoss Property

获取或设置布尔值,指定在操作可能导致数据丢失时是否应停止部署。

如果检测到数据丢失,则为真停止部署;否则为假。 默认为 true。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。