Konwertowanie oryginalnego projektu SQL na projekt w stylu zestawu SDK
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database w ramach usługi Microsoft Fabric
Tworzenie nowego projektu SQL w stylu zestawu SDK to szybkie zadanie. Jeśli jednak masz istniejące projekty SQL, możesz przekonwertować je na projekty SQL w stylu zestawu SDK, aby skorzystać z nowych funkcji.
Po przekonwertowaniu projektu możesz użyć nowych funkcji projektu w stylu zestawu SDK, takich jak:
- Obsługa kompilacji międzyplatformowych
- uproszczony format pliku projektu
- referencje pakietów
Aby dokładnie ukończyć konwersję, wykonamy następujące czynności:
- Utwórz kopię zapasową oryginalnego pliku projektu.
- Skompiluj plik
.dacpac
z oryginalnego projektu w celu porównania. - Zmodyfikuj plik projektu na projekt w stylu SDK.
- Skompiluj plik
.dacpac
z zmodyfikowanego projektu w celu porównania. - Sprawdź, czy pliki
.dacpac
są takie same.
Projekty w stylu zestawu SDK nie są obsługiwane w narzędziach SQL Server Data Tools (SSDT) w programie Visual Studio. Po przekonwertowaniu należy użyć jednego z następujących elementów, aby skompilować lub edytować projekt:
- wiersz polecenia
- rozszerzenie SQL Database Projects w programie Visual Studio Code
- rozszerzenie SQL Database Projects w narzędziu Azure Data Studio
- narzędzia SQL Server Data Tools w programie Visual Studio 2022 w stylu zestawu SDK (wersja zapoznawcza)
Warunki wstępne
- .NET 8 SDK
- VS Code
- rozszerzenie SQL Database Projects lub rozszerzenie SQL Database Projects dla programu VS Code
Krok 1. Tworzenie kopii zapasowej oryginalnego pliku projektu
Przed przekonwertowaniem projektu utwórz kopię zapasową oryginalnego pliku projektu. W razie potrzeby można przywrócić oryginalny projekt.
W Eksploratorze plików utwórz kopię pliku .sqlproj
dla projektu, który ma zostać przekonwertowany z .original
dołączonym na końcu rozszerzenia pliku. Na przykład MyProject.sqlproj
staje się MyProject.sqlproj.original
.
Krok 2. Kompilowanie pliku .dacpac
z oryginalnego projektu w celu porównania
Otwórz projekt w programie Visual Studio 2022. Plik .sqlproj
jest nadal w oryginalnym formacie, więc można go otworzyć w oryginalnych narzędziach SQL Server Data Tools.
Skompiluj projekt w programie Visual Studio, klikając prawym przyciskiem myszy węzeł bazy danych w eksploratorze rozwiązań i wybierając pozycję Build.
Aby utworzyć plik .dacpac
z oryginalnego projektu, należy użyć oryginalnych narzędzi SQL Server Data Tools (SSDT) w programie Visual Studio. Otwórz plik projektu w programie Visual Studio 2022 z zainstalowanymi oryginalnymi narzędziami SQL Server Data Tools.
Skompiluj projekt w programie Visual Studio, klikając prawym przyciskiem myszy węzeł bazy danych w eksploratorze rozwiązań i wybierając pozycję Build.
Otwórz folder projektu w programie VS Code lub narzędziu Azure Data Studio. W widoku Database Projects programu VS Code lub Azure Data Studio kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Build.
Projekty bazy danych SQL można tworzyć z poziomu wiersza polecenia przy użyciu polecenia dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces kompilacji domyślnie tworzy plik .dacpac
w folderze bin\Debug
projektu. Korzystając z Eksploratora plików, znajdź .dacpac
utworzony przez proces kompilacji i skopiuj go do nowego folderu poza katalogiem projektu jako original_project.dacpac
. Użyjemy tego pliku .dacpac
do porównania, aby zweryfikować konwersję później.
Krok 3: Zmodyfikuj plik projektu do projektu w stylu zestawu SDK
Modyfikowanie pliku projektu jest procesem ręcznym, najlepiej wykonanym w edytorze tekstów. Otwórz plik .sqlproj
w edytorze tekstów i wprowadź następujące zmiany:
Wymagane: Dodaj odwołanie do zestawu SDK
Wewnątrz elementu projektu dodaj element Sdk
, aby odwołać się do Microsoft.Build.Sql i najnowszej wersji z https://www.nuget.org/packages/Microsoft.build.sql, gdzie #.#.#
znajduje się w poniższym fragmencie kodu.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Wymagane: Usuń niepotrzebne importy obiektów docelowych kompilacji
Oryginalne projekty SQL odwołują się do kilku obiektów docelowych i właściwości kompilacji w instrukcjach Import. Z wyjątkiem elementów <Import/>
, które zostały jawnie dodane, co jest unikatową i celową zmianą, usuń wiersze rozpoczynające się od <Import ...>
.
"Przykłady do usunięcia, jeśli są obecne w Twoim .sqlproj
:"
...
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Condition="..." Project="...\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
...
Wymagane: Usuń folder Właściwości
Oryginalne projekty SQL mają wpis dla folderu Properties
, który reprezentował dostęp do właściwości projektu w Eksploratorze rozwiązań. Ten element należy usunąć z pliku projektu.
Przykład do usunięcia, jeśli jest obecny w .sqlproj
:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Wymagane: usuń elementy kompilacji dołączone domyślnie
Oryginalne projekty SQL zawierają listę wszystkich plików .sql
reprezentujących obiekty bazy danych jawnie w pliku projektu jako elementy <Build Include="..." />
. W projektach SQL w stylu zestawu SDK wszystkie pliki .sql
w drzewie folderów projektu (**/*.sql
) są domyślnie dołączane, dlatego usunięcie elementów <Build Include="...." />
dla tych plików jest konieczne, aby uniknąć problemów z wydajnością kompilacji.
Wiersze, które powinny zostać usunięte z pliku projektu, na przykład:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Nie należy usuwać elementów <PreDeploy Include="..." />
ani <PostDeploy Include="..." />
, ponieważ te węzły określają konkretne zachowanie dla tych plików. Nie należy również usuwać elementów <Build Include="..." />
w przypadku plików, które nie znajdują się w drzewie folderów projektu SQL.
Opcjonalnie: Usuń odwołania do SSDT
Oryginalne narzędzia SQL Server Data Tools (SSDT) wymagały dodatkowej zawartości w pliku projektu w celu wykrycia instalacji programu Visual Studio. Te wiersze są niepotrzebne w projektach SQL w stylu zestawu SDK i można je usunąć:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
Opcjonalnie: Usuwanie domyślnych ustawień kompilacji
Oryginalne projekty SQL obejmują dwa duże bloki dla ustawień budowania Release i Debug, podczas gdy w projektach SQL w stylu SDK domyślne wartości dla tych opcji są znane przez SDK. Jeśli nie masz dostosowań ustawień kompilacji, rozważ usunięcie tych bloków:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
Lista właściwości projektu odniesienia zawiera dostępne właściwości i ich domyślne wartości.
Krok 4. Skompilowanie pliku .dacpac
z zmodyfikowanego projektu w celu porównania
Projekt SQL nie jest już zgodny z programem Visual Studio 2022. Aby skompilować lub edytować projekt, należy użyć jednego z następujących elementów:
- wiersz polecenia
- rozszerzenie SQL Database Projects w programie Visual Studio Code
- rozszerzenie SQL Database Projects w narzędziu Azure Data Studio
- narzędzia SQL Server Data Tools w programie Visual Studio 2022 w stylu zestawu SDK (wersja zapoznawcza)
Plik projektu jest teraz w formacie w stylu zestawu SDK, ale aby go otworzyć w programie Visual Studio 2022, musisz mieć zainstalowane narzędzia SQL Server Data Tools, w stylu zestawu SDK (wersja zapoznawcza). Otwórz projekt w programie Visual Studio 2022 z zainstalowanymi narzędziami SQL Server Data Tools , stylu SDK (wersja zapoznawcza).
Otwórz folder projektu w programie VS Code lub narzędziu Azure Data Studio. W widoku Database Projects programu VS Code lub Azure Data Studio kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Build.
Projekty bazy danych SQL można tworzyć z poziomu wiersza polecenia przy użyciu polecenia dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces kompilacji domyślnie tworzy plik .dacpac
w folderze bin\Debug
projektu. Korzystając z Eksploratora plików, znajdź .dacpac
utworzony przez proces kompilacji i skopiuj go do nowego folderu poza katalogiem projektu. Użyjemy tego pliku .dacpac
do porównania, aby zweryfikować konwersję później.
Krok 5. Sprawdź, czy pliki .dacpac
są takie same
Aby sprawdzić, czy konwersja zakończyła się pomyślnie, porównaj pliki .dacpac
utworzone z oryginalnych i zmodyfikowanych projektów. Porównanie schematów możliwości projektów SQL umożliwia wizualizację różnic w modelach baz danych między dwoma plikami .dacpac
. Alternatywnie narzędzie wiersza polecenia DacpacVerify może służyć do porównywania dwóch plików .dacpac
, w tym ich skryptów przed/po wdrożeniu i ustawień projektu.
Narzędzie DacpacVerify jest dostępne do zainstalowania jako narzędzie dotnet. Aby zainstalować narzędzie, uruchom następujące polecenie:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
Składnia elementu DacpacVerify polega na określeniu ścieżki do dwóch plików .dacpac
jako dacpacverify <source DACPAC path> <target DACPAC path>
. Aby porównać dwa pliki .dacpac
, uruchom następujące polecenie:
DacpacVerify original_project.dacpac modified_project.dacpac
Możesz użyć narzędzia do porównywania schematów w programie Visual Studio lub narzędziu Azure Data Studio, aby porównać obiekty w plikach .dacpac
.
Uruchom program Visual Studio bez załadowanego projektu. Przejdź do Narzędzia>SQL Server>Nowe Porównanie Schematów. Wybierz oryginalny plik .dacpac
jako źródło i zmodyfikowany plik .dacpac
jako docelowy. Aby uzyskać więcej informacji na temat używania funkcji Schema Compare w programie Visual Studio, zobacz użycie funkcji Schema Compare do porównania różnych definicji baz danych.
Porównanie schematów graficznych nie jest jeszcze dostępne w wersji zapoznawczej projektów SQL w stylu zestawu SDK w programie Visual Studio. Porównanie schematów przy użyciu narzędzia Azure Data Studio.
Porównanie schematów nie jest dostępne w programie Visual Studio Code. Porównanie schematów przy użyciu programu Azure Data Studio lub Visual Studio.
W narzędziu Azure Data Studio zainstaluj rozszerzenie SQL Server Schema Compare, jeśli nie zostało jeszcze zainstalowane. Uruchom nowe porównanie schematów z palety poleceń, otwierając paletę poleceń przy użyciu Ctrl/Cmd+Shift+P
i wpisując Schema Compare
.
Wybierz oryginalny plik .dacpac
jako źródło i zmodyfikowany plik .dacpac
jako docelowy.
Porównanie schematów graficznych jest dostępne w programach Visual Studio i Azure Data Studio.
Po uruchomieniu porównania schematu nie powinny być wyświetlane żadne wyniki. Brak różnic wskazuje, że oryginalne i zmodyfikowane projekty są równoważne, tworząc ten sam model bazy danych w pliku .dacpac
.
Notatka
Porównanie plików .dacpac
za pomocą porównania schematu nie weryfikuje skryptów przed/po wdrożeniu, dziennika refaktoryzacji ani innych ustawień projektu. Weryfikuje tylko model bazy danych. Użycie narzędzia wiersza polecenia DacpacVerify jest zalecanym sposobem sprawdzenia, czy dwa pliki .dacpac
są równoważne.