在不部署数据库属性的情况下部署via代码dacpac

时间:2015-01-30 13:19:21

标签: c# sql-server dacpac

我有一个dacpac文件,我正在使用DacServices库通过应用程序进行部署。我有以下代码来执行此操作:

var dp = DacPackage.Load(dacpacPath);
var dbDeployOptions = new DacDeployOptions
{
    BlockOnPossibleDataLoss = false
};
var dbServices = new DacServices(WebConfigHelper.GetDbConnectionString(webConfigPath));
dbServices.Deploy(dp, WebConfigHelper.GetDbName(webConfigPath), true, dbDeployOptions);

问题在于,使用此代码,目标数据库始终将其恢复模型更改为“Full”,这是在SSDT数据库项目(生成dacpac)中设置的。

我们部署的各种目标数据库使用各种数据库属性,而我们不知道目标DB的恢复模型。有些使用简单,有些使用完全 - 我们不想改变它。

如何更改此代码,以便它不会对目标数据库属性进行任何更改?我已经尝试解开数据库项目中的“部署数据库属性”设置,但上面的代码似乎覆盖了它。

1 个答案:

答案 0 :(得分:3)

DacDeployOptions类包含ScriptDatabaseOptions布尔值,可以设置为false以保留现有数据库设置或使用新默认值。