1

我正在使用 DACPAC 作为我的数据库部署的一部分。相同的包被部署到 dev/staging/prod 环境。我们希望能够做的是为数据库播种数据,例如在每个环境中具有不同用户 ID 的管理员用户。

如果我可以在 DACPAC(或其他)的发布配置文件中放置一个变量,那就太好了,但我想我也可以通过查看@@servername. 有没有更好的方法来实现这一点?

4

1 回答 1

4

因此,如果您在 Visual Studio 中使用 SSDT,这是非常干净的。

转到项目属性,SQLCmd 选项卡并输入任何变量。

在此处输入图像描述

然后在您的脚本中使用它们。

在此处输入图像描述

在 Visual Studio 中发布时,您将获得一个不错的 UI,允许您为变量指定值或加载默认值(如果您指定了任何值)。

在此处输入图像描述

发布配置文件只是一个 MSBuild 项目格式的 xml 文件,所以那里没有什么疯狂的事情。如果您要自动部署,则可以使用您使用的任何 dacpac 部署工具为变量指定默认值。我使用 SqlPackage,它是 SSDT 的一部分。命令行参考

Powershell 的用法:

& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development

于 2014-09-18T22:06:09.230 回答