web-dev-qa-db-ja.com

SQLPackageはデータベース復旧モデルをリセットします

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を使用して、同じ発行プロジェクトを使用してプロジェクトの変更をデプロイすると、同じことが起こります。

ここで何が欠けていますか?私の知る限り、プロフィールにはそのようなフラグはありません。これはSQLPackageの予想される動作ですか?

1
JackLock

私の知る限り、あなたは正しいです。sqlpackageの発行オプションには、復旧モデルを変更するものは何もありません。そのプロパティはdacpacで設定されます。 dacpacのソースコード(SQL Serverデータツール(SSDT、.sqlproj)プロジェクト)にアクセスできる場合は、「復旧モデル」設定が「完全」ではなく「単純」に設定されていることを確認してください。

Visual Studioでこれを行うには、プロジェクトを右クリックして[プロジェクトの設定]タブに移動し、[データベースの設定]をクリックします。このダイアログがポップアップするはずです:

Screenshot of database settings dialog in Visual Studio, with the "Recovery" dropdown option highlighted

あなたがソースコードにアクセスできない場合は、.dacpacファイル(それは単なる圧縮フォルダです)を解凍して、「モデル.xml "これは、単純に次のようにする必要があります。

screenshot of xml "Model" node showing the "RecoveryMode" property set to 1

その行(DataSchemaModel-> Model):

<Property Name="RecoveryMode" Value="1" />

...復旧モデルがフルの場合は省略されます。一括ログの場合は「2」に設定されます。

3
Josh Darnell