提问人:Tahami Rizwan 提问时间:10/19/2023 最后编辑:Tahami Rizwan 更新时间:10/19/2023 访问量:94
如何在 Azure Pipeline 中使用 DACPAC 更新服务器上的数据库,而无需删除并重新创建数据库
How to update a database on server using a DACPAC in Azure Pipeline without dropping and recreating the database
问:
我有一个 SSDT (SQL Server Data Tools) 数据库项目,当我部署它时,它会删除并重新创建数据库/表/存储过程等。
我的方案是,我希望它不要删除数据库,而只更新已进行更改的存储过程或表。我想保持服务器上的现有表和其他对象完好无损。
例如,如果我只对一个表进行更改,则 DACPAC 应仅更新服务器上的该特定表,而不考虑任何其他差异,即使它们与源不匹配
我们通过 Azure 管道使用 DACPAC 文件进行部署。我怎样才能做到这一点?
答:
0赞
Geezer
10/19/2023
#1
您可能已将 CreateNewDatabase 属性设置为True
它可以是命令行发布参数:
/p CreateNewDatabase=True
或者可以在发布 xml 文件中设置它:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
... other properties ...
<CreateNewDatabase>True</CreateNewDatabase>
或者在发布 UI(设置上述 XML 属性)中:
评论
0赞
Tahami Rizwan
10/19/2023
添加参数后,您建议从服务器中删除我的数据库并导致以下错误: 分析部署计划(完成) 更新数据库(开始) 正在回滚不合格的事务。估计回滚完成时间:0%。不合格的事务正在回滚。预计回滚完成:100%。正在创建 SSDT-Demo...执行批处理时发生错误。更新数据库(失败)
0赞
Geezer
10/20/2023
该属性是否已设置为 True,然后您将其更改为 ?CreateNewDatabase
False
评论