SQLPackage重置数据库恢复模型

Jac*_*ock 5 sql-server visual-studio deployment ssdt database-projects

我将 SQLPackage.exe 与数据库发布配置文件结合使用,将数据库更改部署到 DEV 和 QC 实例。我的数据库处于简单恢复模式。但是当我使用 SQLPackage 部署更改时,它将它们恢复为完全恢复模式。

这就是我正在使用的,

"C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /Action:Publish /SourceFile:"FILE PATH TO .DACPAC" /Profile:"PUBLISH PROFILE.XML"

如果我使用 Visual Studio 使用相同的发布项目来部署项目更改,则会发生同样的情况。

我在这里缺少什么?据我所知,Profile 中没有这样的标志。这是 SQLPackage 的预期行为吗?

Jos*_*ell 8

据我所知,您是对的,sqlpackage 发布选项中没有任何内容可以更改恢复模型。该属性在 dacpac 中设置。如果您有权访问 dacpac(SQL Server Data Tools(SSDT、.sqlproj)项目)的源代码,请确保“恢复模型”设置配置为“简单”而不是“完整”。

您可以在 Visual Studio 中执行此操作,方法是右键单击项目,转到“项目设置”选项卡,然后单击“数据库设置”。应弹出此对话框:

Visual Studio 中数据库设置对话框的屏幕截图,其中突出显示了“恢复”下拉选项

如果您无权访问源代码,您可以解压缩 .dacpac 文件(它只是一个压缩文件夹),然后查看“model.xml”,其中应该包含以下简单内容:

xml“Model”节点的屏幕截图,显示“RecoveryMode”属性设置为 1

该行(在 DataSchemaModel -> Model 下):

<Property Name="RecoveryMode" Value="1" />
Run Code Online (Sandbox Code Playgroud)

...如果恢复模型为 Full,则省略。对于批量记录,它设置为“2”。

  • 我遇到了类似的问题,我设置了参数 `/p:ScriptDatabaseOptions=false` 它忽略了 dacpac `/p:ScriptDatabaseOptions=true` 中的恢复模式修复了它 (2认同)