【问题标题】:Deploying a via code dacpac without deploying database properties在不部署数据库属性的情况下部署通过代码 dacpac
【发布时间】:2015-03-29 23:38:48
【问题描述】:

我有一个 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);

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

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

如何更改此代码,使其不对目标数据库属性进行任何更改?我已经尝试在数据库项目中取消勾选“部署数据库属性”设置,但上面的代码似乎覆盖了它。

【问题讨论】:

  • 你试过 DacDeployOptions.ScriptDatabaseOptions = false 吗?
  • 非常感谢。我浏览了两次属性列表,但不知何故错过了两次。如果您将其写为下面的答案,我将接受它作为解决方案。

标签: c# sql-server dacpac


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    相关资源
    最近更新 更多