代码之家  ›  专栏  ›  技术社区  ›  Laurence Frost

通过代码dacpac部署而不部署数据库属性

  •  4
  • Laurence Frost  · 技术社区  · 11 年前

    我有一个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)中设置的。

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

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

    1 回复  |  直到 11 年前
        1
  •  4
  •   Roman Marusyk S Kotra    9 年前

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