Visual Studio 2010数据库项目部署到不同的环境

时间:2011-09-29 12:48:32

标签: database visual-studio-2010 sql-server-2008 project

我有一个数据库项目,适用于我的本地MSSQL 2008数据库。

它在脚本/部署后有一个脚本,它将常规数据配置插入到设置表和其他表中。我每张桌子都有1个文件,例如一个Setting.sql文件,用于将数据插入到Settings表中。

根据我部署的数据库,设置会有所不同。

我该如何编写脚本? Basicaly我希望能说出2个文件,

Prod.Setting.sql和Dev.Setting.sql以及VS 2010将使用适当的脚本,具体取决于我部署的数据库(环境)。

1 个答案:

答案 0 :(得分:3)

完全可行,但有两个选项和几个步骤。您可以拥有完整的重复脚本集,每个配置一个。或者,您可以拥有一组脚本,其内容考虑了您正在使用的配置。我会选择第一个,我会保持简单。

创建两个解决方案配置,或者根据需要使用Debug和Release。我将使用这些作为例子。

对于每个配置,请创建一个新的.sqlcmdvars文件。

Database_Release.sqlcmdvars
Database_Debug.sqlcmdvars

将解决方案配置切换到每个,并在数据库项目属性中将变量文件下拉更改为指向您创建的相应文件。

在每个文件中,您都可以定义在部署期间使用的变量。在每个

中创建一个新变量
$(DeploymentConfiguration)

并将其中的值设置为Debug或Release

然后,在任何Pre或Post部署脚本中,您都可以执行以下操作:

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