Aktualizacja DACPAC z DACFx 3.0 API - Jak sprawdzić aktualną wersję DAC istniejącej bazy danych?
Obecnie przepisuję skrypt bazy danych Powershell mojego zespołu do korzystania z API DACFx 3.0 zamiast 2.0. Udało mi się sprawić, by aktualizacja DACPAC działała z powodzeniem przy użyciu nowegoMicrosoft.SqlServer.Dac.DacServices
klasa kontrolera.
Pozostaje tylko problem: jak mogę pobrać aktualny numer wersji DACPAC z istniejącej bazy danych?
W ramach naszego skryptu wdrożeniowego porównujemy to z wersją DACPAC, którą aktualizujemy, aby ustalić, czy wdrożenie jest konieczne. Jest to również używane do decydowania o tym, czy uruchomić testy związane z bazą danych, więc w ten sposób ograniczymy znaczną ilość czasu na naszych kompilacjach.
Stary interfejs API DacFx2.0 mieszka wMicrosoft.SqlServer.Management.Dac
przestrzeń nazw, więc w starym skrypcie Powershell po prostu stworzyliśmyDacStore
obiekt z połączenia z bazą danych i wyłącz go z właściwości Version:
NASZ STARY 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 ****
}
...
Problem w wersji 3.0, API żyje wMicrosoft.SqlServer.Dac
przestrzeń nazw i „Zamiast używaćDacStore
iDacExtractionUnit
lekcje z poprzednich wersji, większość wszystkiego została zmieniona na całkowicie nowąDacServices
klasa kontrolera. (src) ”
Nie udało mi się znaleźć odpowiednikaDacStore
wDacServices
jeszcze klasa, więc w tej chwili nie wiem, jak pobrać aktualną wersję DAC. Próbowałem przeszukiwać dokumentacje MSDN, ale wszystkie ich sekcje Powershell nadal odwołują się do starego API DACFx2.0. (przykład:tutaj).
Gdyby ktoś mógł mi pomóc, byłoby to bardzo mile widziane. Dzięki!