在不部署数据库属性的情况下通过代码部署 dacpac
Deploying a via code dacpac without deploying database properties
我有一个 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)中设置的。
我们部署的各种目标数据库使用各种数据库属性,我们不知道目标数据库的恢复模型。有些使用简单,有些使用完整 - 我们不想更改它。
如何更改此代码以使其不对目标数据库属性进行任何更改?我已经尝试取消勾选数据库项目中的 "Deploy database properties" 设置,但上面的代码似乎覆盖了它。
DacDeployOptions
class 包含一个 ScriptDatabaseOptions
布尔值,可以将其设置为 false 以保留现有数据库设置或使用新数据库的默认设置。
我有一个 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)中设置的。
我们部署的各种目标数据库使用各种数据库属性,我们不知道目标数据库的恢复模型。有些使用简单,有些使用完整 - 我们不想更改它。
如何更改此代码以使其不对目标数据库属性进行任何更改?我已经尝试取消勾选数据库项目中的 "Deploy database properties" 设置,但上面的代码似乎覆盖了它。
DacDeployOptions
class 包含一个 ScriptDatabaseOptions
布尔值,可以将其设置为 false 以保留现有数据库设置或使用新数据库的默认设置。