Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Egy új SDK-stílusú SQL-projekt létrehozása gyors feladat. Ha azonban már rendelkezik SQL-projektekkel, átalakíthatja őket SDK-stílusú SQL-projektekké, hogy kihasználhassa az új funkciókat.
A projekt konvertálása után használhatja az SDK-stílusú projekt új funkcióit, például:
- Platformfüggetlen buildtámogatás
- egyszerűsített projektfájl formátuma
- csomaghivatkozások
Az átalakítás gondos elvégzéséhez a következőt fogjuk elvégezni:
- Készítsen biztonsági másolatot az eredeti projektfájlról.
- Hozzon létre egy
.dacpacfájlt az eredeti projektből összehasonlítás céljából. - A projektfájlt módosítsa SDK-stílusú projektté.
- Hozzon létre egy
.dacpacfájlt a módosított projektből összehasonlítás céljából. - Ellenőrizze, hogy a
.dacpacfájlok megegyeznek-e.
A Visual Studióban az SQL Server Data Tools (SSDT) nem támogatja az SDK-stílusú projekteket. A konvertálás után az alábbiak egyikével kell létrehoznia vagy szerkesztenie a projektet:
- a parancssor
- az SQL Database Projects bővítmény a Visual Studio Code-ban
- az SQL Database Projects bővítmény az Azure Data Studióban
- az SQL Server Data Tools, az SDK-stílusú előzetes verzió a Visual Studio 2022-ben
Note
Előfordulhat, hogy az SQL-projekt olyan testreszabást tartalmaz, amely kibővíti a szükséges módosításokat ezen lépéseken túl. A cikk mellett a DacFx GitHub-adattár is használható az eredeti SQL-projektről SDK-stílusú SQL-projektekre való frissítéshez szükséges módosítások megértéséhez.
Prerequisites
1. lépés: Az eredeti projektfájl biztonsági másolatának létrehozása
A projekt konvertálása előtt készítsen biztonsági másolatot az eredeti projektfájlról. Így szükség esetén visszatérhet az eredeti projekthez.
A Fájlkezelőben hozza létre a .sqlproj fájl projektjének a másolatát, amelyet .original hozzáfűzésével a fájlkiterjesztés végén szeretne konvertálni.
MyProject.sqlproj például MyProject.sqlproj.originallesz.
2. lépés: Fájl létrehozása .dacpac az eredeti projektből összehasonlítás céljából
Nyissa meg a projektet a Visual Studio 2022-ben. A .sqlproj fájl továbbra is az eredeti formátumban van, ezért az eredeti SQL Server Data Toolsban nyitja meg.
Hozza létre a projektet a Visual Studióban úgy, hogy a jobb gombbal az adatbázis-csomópontra kattint a Megoldáskezelőben , és válassza a Build lehetőséget.
Ha az eredeti projektből szeretne fájlt készíteni .dacpac , a Visual Studióban az eredeti SQL Server Data Tools (SSDT) eszközt kell használnia. Nyissa meg a projektfájlt a Visual Studio 2022-ben az eredeti SQL Server Data Tools telepítésével.
Hozza létre a projektet a Visual Studióban úgy, hogy a jobb gombbal az adatbázis-csomópontra kattint a Megoldáskezelőben , és válassza a Build lehetőséget.
Nyissa meg a projektmappát a VS Code-ban vagy az Azure Data Studióban. Az Database Projects VS Code vagy Azure Data Studio nézetében kattintson a jobb gombbal a projektcsomópontra, és válassza a Buildlehetőséget.
Az SQL-adatbázisprojektek a parancssorból hozhatók létre a dotnet build paranccsal.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
A létrehozási folyamat alapértelmezés szerint létrehoz egy .dacpac fájlt a bin\Debug projekt mappájában. A Fájlkezelővel keresse meg a build folyamat által létrehozott .dacpac-t, és másolja az új mappába, amely a projektkönyvtáron kívül helyezkedik el, mint original_project.dacpac. Ezt a .dacpac fájlt az összehasonlításhoz használjuk az átalakítás későbbi ellenőrzéséhez.
3. lépés: A projektfájl módosítása SDK-stílusú projektre
A projektfájl módosítása egy manuális folyamat, amely a legjobban egy szövegszerkesztőben végezhető el. Nyissa meg a .sqlproj fájlt egy szövegszerkesztőben, és végezze el a következő módosításokat:
Kötelező: Az SDK-referencia hozzáadása
A projektelemen belül adjon hozzá egy Sdk elemet, hogy hivatkozzon a Microsoft.Build.Sql-re és a legújabb verzióra abból a https://www.nuget.org/packages/Microsoft.build.sql forrásból, ahol a #.#.# szerepel az alábbi kódrészletben.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Kötelező: Távolítsa el a build célpont szükségtelen importjait
Az eredeti SQL-projektek több buildcélra és tulajdonságra hivatkoznak importálási utasításokban.
<Import/> A kifejezetten hozzáadott elemek kivételével, amely egyedi és szándékos módosítás, távolítsa el azokat a sorokat, amelyek a következővel <Import ...>kezdődnek:
Eltávolítandó példák, ha a .sqlproj-ben szerepel:
...
<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" />
...
Kötelező: Tulajdonságok mappa eltávolítása
Az eredeti SQL-projektek rendelkeznek egy olyan mappához tartozó Properties bejegyzéssel, amely a megoldáskezelőben a projekttulajdonságokhoz való hozzáférést jelentette. Ezt az elemet el kell távolítani a projektfájlból.
Példa az eltávolításra, ha jelen van a következő szöveghelyen: .sqlproj.
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Kötelező: Az alapértelmezett buildelemek eltávolítása
Az eredeti SQL-projektek a projektfájlban kifejezetten adatbázis-objektumokat képviselő összes .sql fájlt elemekként <Build Include="..." /> sorolják fel. Az SDK-stílusú SQL-projektekben a projektmappafa (.sql) minden **/*.sql fájlja alapértelmezés szerint szerepel, ezért a buildelési teljesítményproblémák elkerülése érdekében el kell távolítani a <Build Include="...." /> fájlok elemeit.
A projektfájlból eltávolítandó sorok, például:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Nem szabad eltávolítania a <PreDeploy Include="..." /> vagy <PostDeploy Include="..." /> elemeket, mert ezek a csomópontok specifikus viselkedést diktálnak azokhoz a fájlokhoz. Az SQL-projekt mappafáját nem tartalmazó fájlok elemeit sem szabad eltávolítania <Build Include="..." /> .
Nem kötelező: SSDT-hivatkozások eltávolítása
Az eredeti SQL Server Data Tools (SSDT) további tartalmat igényelt a projektfájlban a Visual Studio telepítésének észleléséhez. Ezek a sorok szükségtelenek az SDK-stílusú SQL-projektekben, és eltávolíthatók:
<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>
Nem kötelező: Az alapértelmezett buildbeállítások eltávolítása
Az eredeti SQL-projektek két nagy blokkot tartalmaznak a kiadási és hibakeresési buildbeállításokhoz, míg az SDK-stílusú SQL-projektekben ezek alapértelmezett beállításait az SDK ismeri. Ha nem rendelkezik testreszabással a buildbeállításokhoz, távolítsa el az alábbi blokkokat:
<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>
A projekttulajdonságok hivatkozása felsorolja az elérhető tulajdonságokat és azok alapértelmezett beállításait.
4. lépés: Megoldásfájlok
Előfordulhat, hogy a projektfájlra egy megoldásfájl (c0) hivatkozik. Ha rendelkezik megoldásfájllal, frissítenie kell, hogy hivatkozzon az új SDK-stílusú projektfájlra. Ha nem rendelkezik megoldásfájllal, kihagyhatja ezt a szakaszt, és továbbléphet az 5. lépésre.
1. lehetőség: Új megoldásfájl létrehozása
Olyan megoldásfájl esetén, amely csak az SQL-projektet tartalmazza, egyszerűbb eltávolítani a megoldásfájlt, és létrehozni egy új megoldásfájlt az SDK-stílusú projekttel.
dotnet new sln --name MySolution
dotnet sln MySolution.sln add MyDatabaseProject\MyDatabaseProject.sqlproj
2. lehetőség: A megoldásfájl szerkesztése
Ha egy megoldásfájl több projektet tartalmaz, frissítenie kell a megoldásfájlt, hogy hivatkozzon az új SDK-stílusú projektfájlra. Szerkesztheti a megoldásfájlt egy szövegszerkesztőben, és módosíthatja a projekthivatkozást az új SDK-stílusú projektfájlra. A megoldásfájlban lévő projekthivatkozásnak így kell kinéznie:
Project("{PROJECT_TYPE_GUID}") = "MyDatabaseProject", "MyDatabaseProject\MyDatabaseProject.sqlproj", "{PROJECT_GUID}"
EndProject
A PROJECT_TYPE_GUID Microsoft.Build.Sql projekt 42EA0DBD-9CF1-443E-919E-BE9C484E4577 értéke, és a PROJECT_GUID egy projekt fájlelemben, a <ProjectGuid> elemént található egyedi azonosító. Ha rendelkezik a projekttel egy megoldásfájllal, az PROJECT_GUID értéket nem kell módosítani, és változatlan marad, mint az eredeti projektfájlban. Az PROJECT_TYPE_GUID értéket a Microsoft.Build.Sql projekt guid típusára kell módosítani.
5. lépés: Fájl létrehozása .dacpac a módosított projektből összehasonlítás céljából
Az SQL-projekt már nem kompatibilis a Visual Studio 2022-vel. A projekt létrehozásához vagy szerkesztéséhez a következő egyiket kell használnia:
- a parancssor
- az SQL Database Projects bővítmény a Visual Studio Code-ban
- az SQL Database Projects bővítmény az Azure Data Studióban
- az SQL Server Data Tools, az SDK-stílusú előzetes verzió a Visual Studio 2022-ben
A projektfájl már SDK-stílusú, de a Visual Studio 2022-ben való megnyitásához telepítenie kell az SQL Server Data Tools SDK-stílusát (előzetes verzió). Nyissa meg a projektet a Visual Studio 2022-ben az SQL Server Data Tools SDK-stílusú (előzetes verzió) telepítésével.
Nyissa meg a projektmappát a VS Code-ban vagy az Azure Data Studióban. Az Database Projects VS Code vagy Azure Data Studio nézetében kattintson a jobb gombbal a projektcsomópontra, és válassza a Buildlehetőséget.
Az SQL-adatbázisprojektek a parancssorból hozhatók létre a dotnet build paranccsal.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
A létrehozási folyamat alapértelmezés szerint létrehoz egy .dacpac fájlt a bin\Debug projekt mappájában. A Fájlkezelővel keresse meg a .dacpac buildelési folyamat által létrehozott fájlt, és másolja a projektkönyvtáron kívüli új mappába. Ezt a .dacpac fájlt az összehasonlításhoz használjuk az átalakítás későbbi ellenőrzéséhez.
6. lépés: Ellenőrizze, hogy a .dacpac fájlok azonosak-e
Az átalakítás sikerességének ellenőrzéséhez hasonlítsa össze az .dacpac eredeti és a módosított projektekből létrehozott fájlokat. Az SQL-projektek séma-összehasonlító képességei lehetővé teszik, hogy vizualizáljuk az adatbázismodellek közötti különbséget a két .dacpac fájl között. Másik lehetőségként a DacpacVerify parancssori segédprogram használható a két .dacpac fájl összehasonlítására, beleértve az üzembe helyezés előtti/utáni szkripteket és a projektbeállításokat.
A DacpacVerify dotnet-eszközként telepíthető. Az eszköz telepítéséhez futtassa a következő parancsot:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
A DacpacVerify szintaxisa két fájl fájljának fájlútvonalát .dacpac adja meg.dacpacverify <source DACPAC path> <target DACPAC path> A két .dacpac fájl összehasonlításához futtassa a következő parancsot:
DacpacVerify original_project.dacpac modified_project.dacpac
A Visual Studio vagy az Azure Data Studio séma-összehasonlító eszközével összehasonlíthatja a .dacpac fájlokban lévő objektumokat.
Indítsa el a Visual Studiót projekt betöltése nélkül. Nyissa meg az Eszközök>SQL Server>új séma-összehasonlítását. Válassza ki az eredeti .dacpac fájlt forrásként, a módosított .dacpac fájlt pedig célként. A Schema Compare Visual Studióban való használatáról további információt a különböző adatbázis-definíciók összehasonlítása érdekében a séma összehasonlítása című témakörben talál.
A grafikus séma összehasonlítása még nem érhető el az SDK-stílusú SQL-projektek előzetes verziójában a Visual Studióban. A sémák összehasonlítása az Azure Data Studióval.
A séma-összehasonlítás nem érhető el a Visual Studio Code-ban. A sémák összehasonlítása az Azure Data Studióval vagy a Visual Studióval.
Ha még nincs telepítve, telepítse az SQL Server Schema Compare bővítményt az Azure Data Studióban. Nyisson meg egy új séma-összehasonlítást a parancskatalógusból a parancskatalógus megnyitásával és beírásával Ctrl/Cmd+Shift+PSchema Compare.
Válassza ki az eredeti .dacpac fájlt forrásként, a módosított .dacpac fájlt pedig célként.
A grafikus sémák összehasonlítása a Visual Studióban és az Azure Data Studióban érhető el.
A séma-összehasonlítás futtatásakor nem jelenik meg eredmény. A különbségek hiánya azt jelzi, hogy az eredeti és a módosított projektek egyenértékűek, és ugyanazt az adatbázismodellt állítják elő a .dacpac fájlban.
Note
A fájlok séma-összehasonlításon keresztüli .dacpac összehasonlítása nem ellenőrzi az üzembe helyezés előtti/utáni szkripteket, az újrabontási naplókat vagy más projektbeállításokat. Csak az adatbázismodellt ellenőrzi. A DacpacVerify parancssori segédprogrammal ellenőrizheti, hogy a két .dacpac fájl egyenértékű-e.