1

ファイルを生成するビルド ステップが VSTS に.dacpacあり、それを Release 定義に渡します。次に、Execute Azure SQL: DacpacTask を使用してデータベースを更新します。列を削除しようとすると、これが DacpacTask の出力です。

2016-10-26T18:12:01.3300540Z ##[section]Starting: Execute Azure SQL : DacpacTask
2016-10-26T18:12:01.3674946Z ==============================================================================
2016-10-26T18:12:01.3674946Z Task         : Azure SQL Database Deployment
2016-10-26T18:12:01.3674946Z Description  : Deploy Azure SQL DB using DACPAC or run scripts using SQLCMD
2016-10-26T18:12:01.3674946Z Version      : 1.1.2
2016-10-26T18:12:01.3674946Z Author       : Microsoft Corporation
2016-10-26T18:12:01.3674946Z Help         : [More Information](https://aka.ms/sqlazuredeployreadme)
2016-10-26T18:12:01.3674946Z ==============================================================================
2016-10-26T18:12:04.8304591Z packageFile= C:\a\r1\a\MyProject\Database\Database.dacpac
2016-10-26T18:12:07.4389560Z Publishing to database 'MyDB' on server 'mydatabase.database.windows.net'.
2016-10-26T18:12:08.3318189Z Initializing deployment (Start)
2016-10-26T18:12:25.4560124Z *** The column [dbo].[Foo].[Bar] is being dropped, data loss could occur.
2016-10-26T18:12:26.2098293Z Initializing deployment (Complete)
2016-10-26T18:12:26.2098293Z Analyzing deployment plan (Start)
2016-10-26T18:12:26.2098293Z Analyzing deployment plan (Complete)
2016-10-26T18:12:26.2098293Z Updating database (Start)
2016-10-26T18:12:29.5605253Z An error occurred while the batch was being executed.
2016-10-26T18:12:29.5675257Z Updating database (Failed)
2016-10-26T18:12:30.4919483Z 
2016-10-26T18:12:30.6439495Z ##[error]

SerializedRemoteException      : 
SerializedRemoteInvocationInfo : 
ErrorRecord                    : *** Could not deploy package.
StackTrace                     :    at System.Management.Automation.Interpreter.ThrowInstruction.Run(InterpretedFrame 
                                 frame)
                                    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(Int
                                 erpretedFrame frame)
WasThrownFromThrowStatement    : True
Message                        : *** Could not deploy package.
Data                           : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException                 : 
TargetSite                     : Void CheckActionPreference(System.Management.Automation.Language.FunctionContext, 
                                 System.Exception)
HelpLink                       : 
Source                         : System.Management.Automation
HResult                        : -2146233087

2016-10-26T18:12:30.6629481Z ##[section]Finishing: Execute Azure SQL : DacpacTask

そのビルドには他にもいくつかのデータベースの変更が含まれていましたが、列を削除するコミットを元に戻すと、リリースは成功しました。

また、列NULLに sしかない場合でも同じ問題が発生することを確認しました。Bar

(もちろん、SSMS を使用して列を手動で削除することもできますが、CI/CD システムを持つことのポイントはすべてを自動化することなので、それを行う必要はありません。)

VSTS DacpacTask を使用して列を削除するにはどうすればよいですか?

4

1 に答える 1

4

Azure SQL の実行: DacpacTask ビルド ステップの追加の SqlPackage.exe 引数で、BlockOnPossibleDataLoss 引数を false に指定する必要があります。 enter image description here

于 2016-10-27T05:06:51.970 に答える