是否有可用的方法/机制在Visual Studio 2012/2013中基于SSDT的数据库项目中基于构建配置运行不同的部署后脚本集?我想通过部署“测试”配置来预先填充我的数据以进行测试/持续集成,但自然不希望在其他环境中执行此操作。我似乎无法找到一种方法将部署后脚本有条件地链接到构建配置,这对我来说似乎很奇怪。
答案 0 :(得分:8)
您可以通过编辑MSBuild使用的.sqlproj文件来完成此操作。然后,当您构建“测试”配置时,在“发布”模式下构建时,您将获得不同的dacpac内容。例如:
<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
<PostDeploy Include="Debug.PostDeployment1.sql" />
</ItemGroup>
答案 1 :(得分:3)
您也可以使用SQLCMD变量来执行类似的操作。如果值==&#34;测试&#34;,则运行一组值。如果没有,请运行其他东西。我在这里写了博客:
http://schottsql.blogspot.com/2013/05/trick-to-not-run-prepost-sql-on-publish.html
它没有在构建上完成,并且脚本总是以这种方式包含在内,但如果这不是问题,它可以让您轻松编写代码以便在各种环境中轻松运行。