TL;DR SQLCI は FILESTREAM をサポートしていますか?
FILESTREAM列を含むデータベースに対してTeamCityでRed Gate SQL CI Build ステップSynchronization of 'Scripts.state' and ... failed: Default FILESTREAM filegroup is not available in database
を実行しようとすると、エラーが発生
します。
私の信頼できる情報源は、Git に支えられた SQL ソース コントロールです。他のエラーのため、検証のために LocalDB ではなく SqlServer 2012 インスタンスを使用しています。このサーバーには FILESTREAM コンテンツを含む他のデータベースがあるため、この問題は機能の制限によるものではないと思います。
以前にこの問題に遭遇した人はいますか?
完全なエラー リスト
(*で匿名化)
[Step 1/2] Disabled build step database (Red Gate (SQL Server)) is skipped
Step 2/2: Red Gate SQL CI Build (Red Gate SQL CI Build) (3m:07s)
[Step 2/2] Starting: C:\BuildAgent\plugins\sqlci-teamcity-agent\assets\sqlCI.exe build /temporaryDatabaseUserName=******** /temporaryDatabaseServer=*********** /scriptsFolder=SqlSourceControl /packageId=*********** /packageVersion=423
[Step 2/2] in directory: C:\BuildAgent\work\fbc3771fbc95579a
[Step 2/2] sqlCI.exe -- Red Gate's SQL Continuous Integration v2.1.1.1028
[Step 2/2]
[Step 2/2] Creating scratch database sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c (1s)
[Creating scratch database sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c] STARTING: Creating scratch database sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c
[Creating scratch database sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c] COMPLETED SUCCESSFULLY: Creating scratch database sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c
[Step 2/2] Validating database state (2m:46s)
[Validating database state] STARTING: Validating database state
[Validating database state] Starting: C:\BuildAgent\plugins\sqlci-teamcity-agent\assets\SC\SQLCompare.exe /include="Identical" /include="StaticData" /scripts1="C:\BuildAgent\temp\buildTmp\tbudqiij.eej\db\state" /server2="**.**.**.**" /database2="sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c" /username2="******" /password2=****** /synchronize /options="DecryptPost2KEncryptedObjects,IgnoreFillFactor,IgnoreWhiteSpace,IncludeDependencies,IgnoreFileGroups,IgnoreUserProperties,IgnoreWithElementOrder,IgnoreDatabaseAndServerName,UseMigrationsV2"
[Validating database state] SQL Compare: in trial, expires 2015/06/18 15:03:41 +01:00
[Validating database state] Automation License: in trial, expires 2015/06/18 15:03:41 +01:00
[Validating database state] SQL Compare Command Line V11.2.0.22
[Validating database state] ==============================================================================================================================================================
[Validating database state] Copyright Copyright ¸ 1999 - 2015 Red Gate Software Ltd
[Validating database state]
[Validating database state] Registering data sources
[Validating database state] Creating mappings
[Validating database state] Comparing
[Validating database state]
[Validating database state] Applying Command Line Items
[Validating database state]
[Validating database state] Checking for identical databases
[Validating database state] Creating SQL
[Validating database state] Inserting static data SQL into deployment script
[Validating database state] Deploying changes (from DB1 to DB2)
[Validating database state] Error: Synchronization of 'Scripts.state' and '172.16.1.202.sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c' failed: Default FILESTREAM filegroup is not available in
[Validating database state] database 'sqlCI_ac1a4566-1268-47ee-a255-a0c7e751511c'. Error executing the following SQL: CREATE TABLE [dbo].[tbl_************] ( [*******ID] [int] NOT NULL
[Validating database state] IDENTITY(1, 1) NOT FOR REPLICATION, [******Name] [nvarchar] (250) COLLATE Latin1_General_CI_AS NULL, [*******Type] [nvarchar]...
[Validating database state] ##teamcity[buildStatus status='FAILURE' text='Validating database state failed with error: SQLCompare failed with exit code 126: see output above for more information, or for generic information about this exit code, see: http://www.red-gate.com/sqlCI/ExitCodes/SQLCompare']
[Validating database state] FINISHED WITH ERROR: Validating database state
[Step 2/2] ##teamcity[buildStatus status='FAILURE' text='Running SQLCompare failed with error: SQLCompare failed with exit code 126: see output above for more information, or for generic information about this exit code, see: http://www.red-gate.com/sqlCI/ExitCodes/SQLCompare']
[Step 2/2] Process exited with code 32
[Step 2/2] Step Red Gate SQL CI Build (Red Gate SQL CI Build) failed
調査
SQL トレースを実行することで、障害発生後にデータベースが自動削除される直前にネットワーク ケーブルを抜くことができました。
@DevOps の回答に基づいて、SQLCI がデータベースに FILESTREAM ファイル グループを作成していないと判断できました。手動で作成することで、CREATE TABLE は成功しました。
SQLCI にこのステップを自動的に実行させることはまだできていません。