Převod původního projektu SQL na projekt ve stylu sady SDK
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
Vytvoření nového projektu SQL ve stylu sady SDK je rychlý úkol. Pokud ale máte existující projekty SQL, můžete je převést na projekty SQL ve stylu sady SDK, abyste mohli využívat nové funkce.
Po převodu projektu můžete použít nové funkce projektu ve stylu sady SDK, například:
- Podpora sestavení napříč platformami
- Zjednodušený formát souboru projektu
- odkazy na balíčky
Abychom převod dokončili pečlivě, budeme:
- Vytvořte zálohu původního souboru projektu.
- Vytvořte
.dacpac
soubor z původního projektu pro porovnání. - Upravte soubor projektu na projekt ve stylu sady SDK.
- Vytvořte soubor
.dacpac
z upraveného projektu pro porovnání. - Ověřte, že soubory
.dacpac
jsou stejné.
Projekty ve stylu sady SDK se v sadě Visual Studio nepodporují v SQL Server Data Tools (SSDT). Po převodu je nutné k sestavení nebo úpravě projektu použít jednu z následujících možností:
- příkazový řádek
- rozšíření SQL Database Projects v editoru Visual Studio Code
- rozšíření SQL Database Projects v nástroji Azure Data Studio
- SQL Server Data Tools, sdk-style (Preview) v sadě Visual Studio 2022
Požadavky
- .NET 8 SDK
- VS Code
- rozšíření SQL Database Projects nebo rozšíření SQL Database Projects pro VS Code
Krok 1: Vytvoření zálohy původního souboru projektu
Před převodem projektu vytvořte zálohu původního souboru projektu. Tímto způsobem se v případě potřeby můžete vrátit k původnímu projektu.
V Průzkumníku souborů vytvořte kopii souboru .sqlproj
pro projekt, který chcete převést s .original
připojenou na konec přípony souboru. Například MyProject.sqlproj
se stane MyProject.sqlproj.original
.
Krok 2: Sestavení souboru .dacpac
z původního projektu pro porovnání
Otevřete projekt v sadě Visual Studio 2022. Soubor .sqlproj
je stále v původním formátu, takže ho otevřete v původních nástrojích SQL Server Data Tools.
Sestavte projekt v sadě Visual Studio tak, že kliknete pravým tlačítkem na uzel databáze v průzkumníku řešení a vyberete Sestavení.
Chcete-li vytvořit soubor .dacpac
z původního projektu, musíte použít původní sql Server Data Tools (SSDT) v sadě Visual Studio. Otevřete soubor projektu v sadě Visual Studio 2022 s nainstalovanými původními nástroji SQL Server Data Tools.
Sestavte projekt v sadě Visual Studio tak, že kliknete pravým tlačítkem na uzel databáze v průzkumníku řešení a vyberete Sestavení.
Otevřete složku projektu ve VS Code nebo Azure Data Studiu. Ve zobrazení databázových projektů v nástroji VS Code nebo Azure Data Studio klikněte pravým tlačítkem na uzel projektu a vyberte Sestavení.
Projekty databáze SQL je možné sestavit z příkazového řádku pomocí příkazu dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces sestavení ve výchozím nastavení vytvoří soubor .dacpac
ve složce bin\Debug
projektu. Pomocí Průzkumníka souborů vyhledejte .dacpac
vytvořené procesem sestavení a zkopírujte ho do nové složky mimo adresář projektu jako original_project.dacpac
. Tento .dacpac
soubor použijeme k porovnání a později ověříme převod.
Krok 3: Úprava souboru projektu na projekt ve stylu sady SDK
Úprava souboru projektu je ruční proces, který se nejlépe provádí v textovém editoru. Otevřete soubor .sqlproj
v textovém editoru a proveďte následující změny:
Povinné: Přidání odkazu na sadu SDK
Uvnitř elementu projektu přidejte položku Sdk
jako odkaz na Microsoft.Build.Sql i nejnovější verzi z https://www.nuget.org/packages/Microsoft.build.sql, který obsahuje #.#.#
v níže uvedeném úryvku kódu.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Povinné: Odeberte nepotřebné importy sestavovacího cíle
Původní projekty SQL odkazují na několik cílů sestavení a vlastností v příkazech Import. Kromě <Import/>
položek, které jste explicitně přidali, což je jedinečná a záměrná změna, odeberte řádky, které začínají <Import ...>
.
Příklady, které mají být odebrány, pokud jsou přítomny ve vašem .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" />
...
Povinné: Odebrat složku Vlastnosti
Původní projekty SQL mají položku pro složku Properties
, která představovala přístup k vlastnostem projektu v Průzkumníku řešení. Tuto položku je potřeba odebrat ze souboru projektu.
Příklad odstranění, pokud je přítomen v .sqlproj
:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Povinné: Odebrání položek sestavení zahrnutých ve výchozím nastavení
Původní projekty SQL uvádějí všechny .sql
soubory představující databázové objekty explicitně v souboru projektu jako položky <Build Include="..." />
. Ve stylem SDK SQL projektech jsou v adresářové struktuře projektu (.sql
) ve výchozím nastavení zahrnuty všechny **/*.sql
soubory, takže je nutné odebrat <Build Include="...." />
položky pro tyto soubory, aby se zabránilo problémům s výkonem sestavení.
Řádky, které by se měly odebrat ze souboru projektu, například:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Položky <PreDeploy Include="..." />
ani <PostDeploy Include="..." />
byste neměli odstraňovat, protože tyto uzly určují konkrétní chování pro tyto soubory. Také byste neměli odebírat položky <Build Include="..." />
pro soubory, které nejsou ve stromu složek projektu SQL.
Volitelné: Odebrání odkazů SSDT
Původní sql Server Data Tools (SSDT) vyžadoval další obsah v souboru projektu k detekci instalace sady Visual Studio. Tyto řádky nejsou nutné v projektech SQL ve stylu sady SDK a je možné je odebrat:
<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>
Volitelné: Odebrání výchozího nastavení sestavení
Původní projekty SQL obsahují dva velké bloky pro nastavení sestavení vydané verze a ladění, zatímco v projektech SQL ve stylu sady SDK jsou výchozí hodnoty pro tyto možnosti známé sadou SDK. Pokud nemáte žádné vlastní úpravy nastavení sestavení, zvažte odebrání těchto bloků:
<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>
Seznam vlastností projektu uvádí dostupné vlastnosti a jejich výchozí hodnoty.
Krok 4: Sestavení souboru .dacpac
z upraveného projektu pro porovnání
Projekt SQL už není kompatibilní se sadou Visual Studio 2022. Pokud chcete vytvořit nebo upravit projekt, musíte použít jednu z těchto možností:
- příkazový řádek
- rozšíření SQL Database Projects v editoru Visual Studio Code
- rozšíření SQL Database Projects v nástroji Azure Data Studio
- SQL Server Data Tools, SDK-style (Preview) v prostředí Visual Studio 2022
Soubor projektu je teď ve formátu stylu sady SDK, ale pokud ho chcete otevřít v sadě Visual Studio 2022, musíte mít nainstalované nástroje SQL Server Data Tools ve stylu sady SDK (Preview). Otevřete projekt v sadě Visual Studio 2022 s nástroji SQL Server Data Tools nainstalovanými ve stylu SDK (preview) .
Otevřete složku projektu ve VS Code nebo Azure Data Studiu. Ve zobrazení databázových projektů v nástroji VS Code nebo Azure Data Studio klikněte pravým tlačítkem na uzel projektu a vyberte Sestavení.
Projekty databáze SQL je možné sestavit z příkazového řádku pomocí příkazu dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces sestavení ve výchozím nastavení vytvoří soubor .dacpac
ve složce bin\Debug
projektu. Pomocí Průzkumníka souborů vyhledejte .dacpac
vytvořené procesem sestavení a zkopírujte ho do nové složky mimo adresář projektu. Tento .dacpac
soubor použijeme k porovnání a později ověříme převod.
Krok 5: Ověření, že soubory .dacpac
jsou stejné
Pokud chcete ověřit, že převod proběhl úspěšně, porovnejte soubory .dacpac
vytvořené z původních a upravených projektů. Porovnání schématu schopností projektů SQL umožňuje vizualizovat rozdíl v databázových modelech mezi těmito dvěma .dacpac
soubory. Případně můžete použít nástroj příkazového řádku DacpacVerify k porovnání dvou .dacpac
souborů, včetně jejich skriptů před nasazením a nastavení projektu.
DacpacVerify je k dispozici pro instalaci jako nástroj dotnet. Nástroj nainstalujete spuštěním následujícího příkazu:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
Syntaxe DacpacVerify je specifikovat cestu k dvěma souborům .dacpac
jako dacpacverify <source DACPAC path> <target DACPAC path>
. Pokud chcete porovnat dva .dacpac
soubory, spusťte následující příkaz:
DacpacVerify original_project.dacpac modified_project.dacpac
Pomocí nástroje pro porovnání schématu v sadě Visual Studio nebo Azure Data Studio můžete porovnat objekty v .dacpac
souborech.
Spusťte Visual Studio bez načteného projektu. Přejděte na Tools>SQL Server>Nové porovnání schématu. Vyberte původní .dacpac
soubor jako zdroj a upravený .dacpac
soubor jako cíl. Další informace o použití funkce Schema Compare v sadě Visual Studio najdete v tématu porovnání schémat k porovnání různých definic databází.
Porovnání grafického schématu zatím není k dispozici ve verzi náhledu SQL projektů ve stylu SDK v sadě Visual Studio. K porovnání schémat použijte Azure Data Studio.
Porovnání schématu není v editoru Visual Studio Code k dispozici. K porovnání schémat použijte Azure Data Studio nebo Visual Studio.
V Nástroji Azure Data Studio nainstalujte rozšíření SQL Server Schema Compare, pokud ještě není nainstalované. Spusťte nové porovnání schématu z palety příkazů tak, že otevřete paletu příkazů pomocí Ctrl/Cmd+Shift+P
a zadáte Schema Compare
.
Vyberte původní .dacpac
soubor jako zdroj a upravený .dacpac
soubor jako cíl.
Porovnání grafického schématu je k dispozici v aplikaci Visual Studio a Azure Data Studio.
Při spuštění porovnání schématu by se neměly zobrazit žádné výsledky. Nedostatek rozdílů značí, že původní a upravené projekty jsou ekvivalentní, což vytváří stejný databázový model v souboru .dacpac
.
Poznámka
Porovnání .dacpac
souborů prostřednictvím porovnání schématu neověřuje skripty před nasazením, refaktorlog ani jiná nastavení projektu. Ověřuje pouze model databáze. Použití nástroje příkazového řádku DacpacVerify je doporučený způsob, jak ověřit, že dva .dacpac
soubory jsou ekvivalentní.