我正在使用 DACPAC 作为我的数据库部署的一部分。相同的包被部署到 dev/staging/prod 环境。我们希望能够做的是为数据库播种数据,例如在每个环境中具有不同用户 ID 的管理员用户。
如果我可以在 DACPAC(或其他)的发布配置文件中放置一个变量,那就太好了,但我想我也可以通过查看@@servername
. 有没有更好的方法来实现这一点?
我正在使用 DACPAC 作为我的数据库部署的一部分。相同的包被部署到 dev/staging/prod 环境。我们希望能够做的是为数据库播种数据,例如在每个环境中具有不同用户 ID 的管理员用户。
如果我可以在 DACPAC(或其他)的发布配置文件中放置一个变量,那就太好了,但我想我也可以通过查看@@servername
. 有没有更好的方法来实现这一点?
因此,如果您在 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