Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze 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
- odwołania do pakietu
Aby dokładnie ukończyć konwersję, wykonamy następujące czynności:
- Utwórz kopię zapasową oryginalnego pliku projektu.
- Skompiluj plik
.dacpacz oryginalnego projektu w celu porównania. - Zmodyfikuj plik projektu na projekt w stylu SDK.
- Skompiluj plik
.dacpacz zmodyfikowanego projektu w celu porównania. - Sprawdź, czy pliki
.dacpacsą 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)
Note
Może się okazać, że projekt SQL zawiera dostosowania, które wykraczają poza wymagane zmiany związane z tymi czynnościami. Oprócz tego artykułu repozytorium GitHub DacFx może służyć do zrozumienia zmian niezbędnych do uaktualnienia z oryginalnego projektu SQL do projektów SQL w stylu zestawu SDK.
Prerequisites
- .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. Pliki rozwiązania
Plik projektu może być przywołyny w pliku rozwiązania (.sln). Jeśli masz plik rozwiązania, zaktualizuj go, aby odwoływać się do nowego pliku projektu w stylu zestawu SDK. Jeśli nie masz pliku rozwiązania, możesz pominąć tę sekcję i przejść do kroku 5.
Opcja 1. Tworzenie nowego pliku rozwiązania
W przypadku pliku rozwiązania, który zawiera tylko projekt SQL, łatwiej jest usunąć plik rozwiązania i utworzyć nowy plik rozwiązania z projektem w stylu zestawu SDK.
dotnet new sln --name MySolution
dotnet sln MySolution.sln add MyDatabaseProject\MyDatabaseProject.sqlproj
Opcja 2. Edytowanie pliku rozwiązania
Gdy plik rozwiązania zawiera wiele projektów, należy zaktualizować plik rozwiązania, aby odwoływać się do nowego pliku projektu w stylu zestawu SDK. Plik rozwiązania można edytować w edytorze tekstów i zmienić odwołanie do projektu w nowym pliku projektu w stylu zestawu SDK. Odwołanie do projektu w pliku rozwiązania powinno wyglądać następująco:
Project("{PROJECT_TYPE_GUID}") = "MyDatabaseProject", "MyDatabaseProject\MyDatabaseProject.sqlproj", "{PROJECT_GUID}"
EndProject
Wartość PROJECT_TYPE_GUID dla projektu Microsoft.Build.Sql to 42EA0DBD-9CF1-443E-919E-BE9C484E4577, a PROJECT_GUID jest unikatowym identyfikatorem projektu znajdującym się w elemencie pliku projektu <ProjectGuid>. Jeśli masz plik rozwiązania z projektem, PROJECT_GUID wartość nie jest wymagana do zmiany i może pozostać taka sama jak w oryginalnym pliku projektu. Wartość musi zostać zmieniona na identyfikator GUID typu projektu Microsoft.Build.Sql PROJECT_TYPE_GUID.
Krok 5. Kompilowanie .dacpac pliku ze 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 6: 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. Możliwości porównania schematów w projektach SQL pozwalają na 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.
Note
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.