gpt4 book ai didi

publish - 如何根据部署配置文件运行不同的前后 SSDT 发布脚本

转载 作者:行者123 更新时间:2023-12-01 07:36:16 25 4
gpt4 key购买 nike

我在 Visual Studio 2013 中使用 SSDT。

我为开发服务器创建了一些发布前和发布后脚本。预部署脚本从表中清空数据并重新设置所有自动标识字段。部署后脚本使用静态数据和示例数据填充表。

现在我需要将数据库发布到我们的临时和实时数据库服务器。我为这些服务器创建了新的“publish.xml”配置文件。但显然我不希望运行相同的前后脚本。

我如何根据发布配置文件指定不同的脚本,或者让脚本了解目标并执行不同的操作。

我最担心的是发布到实时服务器并意外破坏数据。

提前致谢。

道格

最佳答案

您有几个选择:

1 - 将您的数据更改包装在对@servername 或环境独有的调用中,这样您就可以得到如下内容:

if @@servername = 'dev_server'
begin
delete blah
insert blah

end

2 - 您也可以使用 sqlcmd 变量实现类似的功能,传入一个名为“/v:DestoryData=true”的变量或其他东西,然后您可以在脚本中引用它。

3 - 不要使用部署前/部署后脚本,而是使用自己的机制来运行它们,即使用批处理文件部署 dacpacs 并在前后添加对 sqlcmd 的调用 - 这样做的缺点是在部署时,更改为table 导致任何外键在部署前被禁用并在部署后重新启用。

4 - 编辑 dacpac,部署前/部署后脚本只是 dacpac 内的文本文件,它本质上是一个遵循 microsoft 打包格式的 zip 文件,并且有一个 .net 打包 api 可以让您修改它。

我认为就是这样,请询问是否有任何不清楚的地方:)

编辑

关于publish - 如何根据部署配置文件运行不同的前后 SSDT 发布脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35174045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com