我正在使用DACPAC作为数据库部署的一部分。将相同的包部署到dev / staging / prod环境。我们希望能够做的是使用管理员用户等数据来建立数据库,例如,每个环境都有不同的用户ID。
如果我可以在DACPAC(或其他)的发布配置文件中放置一个变量,那将会很棒,但我想我也可以通过查看@@servername
来实现这一点。有没有更好的方法来实现这个目标?
答案 0 :(得分:2)
如果您在Visual Studio中使用SSDT,那么这是非常干净的。
转到项目属性,SQLCmd选项卡并输入任何变量。
然后在脚本中使用它们。
在visual studio中发布时,您将获得一个很好的UI,允许您指定变量的值或加载默认值(如果您指定了任何值)。
发布配置文件只是一个MSBuild项目格式的xml文件,因此没有什么可疯狂的。如果您正在自动部署,则可以使用您正在使用的任何dacpac部署工具为变量指定默认值。我使用SqlPackage,这是SSDT的一部分。 Command Line Reference
Powershell的用法:
& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development