Atualizando os DACPACs com a API do DACFx 3.0 - Como inspecionar a versão atual do DAC de um banco de dados existente?
No momento, estou reescrevendo o script Powershell de implantação de banco de dados da minha equipe para usar a API do DACFx 3.0 em vez de 2.0. Consegui fazer com que a atualização do DACPAC funcionasse com sucesso, usando o novoMicrosoft.SqlServer.Dac.DacServices
classe do controlador.
O único problema que permanece é: como posso pegar o número atual da versão do DACPAC de um banco de dados existente?
Como parte do nosso script de implantação, estamos comparando isso com a versão do DACPAC para a qual estamos atualizando, para determinar se uma implantação é necessária. Isso também é usado para decidir se os testes relacionados ao banco de dados devem ser executados, por isso, reduzimos uma quantidade significativa de tempo em nossas compilações.
A antiga API DacFx2.0 mora noMicrosoft.SqlServer.Management.Dac
namespace, então no antigo roteiro de Powershell nós simplesmente criamos umDacStore
Objeto da conexão do banco de dados e obter a propriedade de versão dele:
O nosso antigo script POWERSHELL
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)
Write-Host "The following data-tier applications (instances) exist in the DAC store:"
foreach($dacInstance in $dacStore.DacInstances)
{
Write-Host Instance Name: $dacInstance.Name
Write-Host DAC Type Application Name: $dacInstance.Type.Name
Write-Host DAC Type Version: $dacInstance.Type.Version <--- **** this is what I need ****
}
...
A questão agora em 3.0, a API vive noMicrosoft.SqlServer.Dac
namespace e "Em vez de usar oDacStore
eDacExtractionUnit
classes de versões anteriores, mais tudo foi refatorado no novoDacServices
classe do controlador. (src) "
Eu não consegui encontrar um equivalente deDacStore
noDacServices
classe ainda, então a partir de agora eu não sei como recuperar a versão atual do DAC. Eu tentei pesquisar por documentações do MSDN, mas todas as suas seções do Powershell ainda faziam referência à antiga API do DACFx2.0. (exemplo:Aqui).
Se alguém pudesse me ajudar, isso seria muito apreciado. Obrigado!