localdb RESTORE SQL funciona na minha caixa Win 10, mas não no meu agente de pipeline do Azure

localdb RESTORE SQL funciona na minha caixa Win 10, mas não no meu agente de pipeline do Azure

Eu tenho um pipeline do Azure que se recusa a executar meus testes de integração (bem, antes de executar os testes, ele deve criar os bancos de dados necessários a partir de arquivos .bak - e essa é a parte que está falhando)

Este SQL está sendo invocado como parte da minha ClassInitializerotina MSTest:

IF DB_ID('saleslogix_full') IS NOT NULL
    BEGIN

      ALTER DATABASE [saleslogix_full] SET SINGLE_USER WITH
      ROLLBACK IMMEDIATE;

      DROP DATABASE [saleslogix_full];

    END

restore database saleslogix_full
from disk = 'C:\x\y\z\data-snapshots\saleslogix_full.bak' with Recovery,
move 'saleslogix_full' to 'C:\x\y\z\saleslogix_full.mdf',
move 'saleslogix_full_log' to 'C:\x\y\z\saleslogix_full_log.ldf'

O acima é invocado conectando-se ao banco de dados 'mestre' do (localdb)\MSSQLLocalservidor. Novamente, "funciona na minha máquina" executando o Visual Studio 2019. Mas não funciona em nenhum desses agentes do Azure: windows-2019evs2017-win2016


Detalhes adicionais – Snippet de log do agente do Azure

A total of 6 test files matched the specified pattern.
  X SeededSuccessfully_SalesforceIntegration
  Error Message:
   Class Initialization method MyCorp.Data.ReplicationWorker.Tests.Test1.ClassInit threw exception. System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException: Cannot create more than one clustered index on table 'dbo.sysschemaarticles'. Drop the existing clustered index 'PK_dbo.sysschemaarticles' before creating another.
Database 'saleslogix_full' was restored, however an error was encountered while replication was being restored/removed. The database has been left offline. See the topic MSSQL_ENG003165 in SQL Server Books Online.
RESTORE DATABASE is terminating abnormally.
Processed 1120 pages for database 'saleslogix_full', file 'saleslogix_full' on file 1.
Processed 2 pages for database 'saleslogix_full', file 'saleslogix_full_log' on file 1..

Agora a joia enterrada na mensagem de log acima é: Cannot create more than one clustered index on table 'dbo.sysschemaarticles'. Drop the existing clustered index 'PK_dbo.sysschemaarticles' before creating another

Antes de me aprofundar em como fazer isso, alguém pode me indicar uma direção parapor que isso funciona na minha caixa do Windows 10, mas não no meu agente de pipeline do Azure?Meu instinto inicial é dizer que há uma diferença nas edições SQL "localdb"

Responder1

Acabei colocando try{...}catch{..}em torno do meu código .NET que era responsável pela instrução SQL de bombardeio.

A captura é específica para um System.Data.SqlClient.SqlExceptionerro

Dentro do catch, executo esse SQL:

"ALTER DATABASE saleslogix_full SET ONLINE"

E todos os meus testes de integração parecem passar no banco de dados

informação relacionada