TL;DR Поддерживает ли SQLCI FILESTREAM?
Я получаю сообщение об ошибке Synchronization of 'Scripts.state' and ... failed: Default FILESTREAM filegroup is not available in database
при попытке запустить этап сборки Red Gate SQL CI в TeamCity для моей базы данных, которая включает столбцы FILESTREAM.
Мой источник правды — SQL Source Control, поддерживаемый Git. Я использую экземпляр SqlServer 2012, а не LocalDB для проверки из-за других ошибок. На этом сервере есть и другие базы данных с содержимым 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 выполнять этот шаг автоматически.