Visual Studio 2010数据库项目部署到不同的环境
问题描述:
我有一个数据库项目,适用于我的本地MSSQL 2008数据库。Visual Studio 2010数据库项目部署到不同的环境
它具有脚本/部署后脚本,可以将常规数据配置插入到设置表和其他表中。每个表格有一个文件,例如一个Setting.sql文件将数据插入到Settings表中。
设置将根据我部署的数据库而有所不同。
我该如何编写脚本? Basicaly我希望能够说2个文件,
Prod.Setting.sql和Dev.Setting.sql和VS 2010将使用相应的脚本,具体取决于我部署到的数据库(环境)。
答
完全可行,但有两个选项和涉及的几个步骤。您可以拥有一套完整的重复脚本,每个配置一个脚本。或者,您可以拥有一组脚本,其中的内容考虑了您正在使用的配置。我会与第一,我会保持简单。
创建两个解决方案配置,或者使用调试和发布,如果你喜欢。我将以这些为例。
对于每个配置,请创建一个新的.sqlcmdvars文件。
Database_Release.sqlcmdvars
Database_Debug.sqlcmdvars
切换您的解决方案配置到每个并在数据库项目属性改变的变量在您创建相应的文件文件拖放到一点。
在每个文件中,您都可以定义在部署过程中使用的变量。在每一个
$(DeploymentConfiguration)
创建一个新的变量,并在每一个其值设置为Debug或在您的任何前置或后置部署脚本释放
然后,你可以做一些事情,像这样:
IF '$(DeploymentConfiguration)' = 'Debug'
BEGIN
PRINT 'Executing Debug deployment'
:r .\Debug\SomeNeededScript.sql
END
IF '$(DeploymentConfiguration)' = 'Release'
BEGIN
PRINT 'Executing Release deployment'
:r .\Release\Anotherscript.sql
END