Oktatóanyag: Az adatbázisséma tárolása a Gitben

A következőre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-adatbázis a Microsoft Fabric rendszerben

Az adatbázisséma Gitben való tárolása számos előnnyel jár, beleértve a verziókövetést, az együttműködést és a változások időbeli nyomon követését. Ez a megközelítés különösen akkor hasznos, ha kódon keresztül definiálja az adatbázissémát, és a módosításokat közvetlenül egy fejlesztési környezetben alkalmazza egy ORM- vagy kódolási ügynök, például a GitHub Copilot használatával.

Ebben az oktatóanyagban megtudhatja, hogyan tárolhatja az adatbázissémát a Gitben, és hogyan kezelheti azt a fejlesztési munkafolyamat részeként.

  • Új SQL-projekt létrehozása meglévő adatbázisból
  • Az adatbázis kódjának véglegesítése és leküldése egy Git-távoli adattárba
  • Az adatbázis módosításainak alkalmazása a meglévő kódra
  • A Git távoli adattár módosításainak lekérése és alkalmazása a helyi adatbázisra (nem kötelező)

Az oktatóanyag információáramlását bemutató ábra.

Amikor végzett, készen áll arra, hogy nyomon kövesse az adatbázist a forráskontrollban, és együttműködjön a csapatával az adatbázis-módosításokon egy Git-adattáron keresztül.

Note

Az oktatóanyag elvégzéséhez hozzá kell férnie egy SQL-adatbázishoz. Helyileg ingyenesen fejleszthet SQL Server fejlesztői kiadással Windows vagy tárolókban.

Prerequisites

Warning

Ez az oktatóanyag nem érhető el az SDK-stílusú projektekhez (előzetes verzió) a 2022-Visual Studio. Ehelyett SQL Server Management Studio (SSMS) vagy Visual Studio Code használjon.

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

1. lépés: Új SQL-projekt létrehozása meglévő adatbázisból

Az adatbázis forrásvezérlőben való megjelenítéséhez használja az SQL Database projektformátumát . A projekt minden adatbázis-objektumhoz tartalmaz .sql fájlokat, valamint egy .sqlproj adatbázis-beállításokat tartalmazó fájlt. Amikor a projektet a fájlkezelőben és a forrásvezérlőben tekinti meg, az SQL-projekt struktúrája tükrözi az adatbázist az objektumkezelőben.

A SQL Server Object Explorer Visual Studio területén kattintson a jobb gombbal arra az adatbázisra, amelyből létre szeretne hozni egy project, és válassza az Új Project létrehozása... .

A Visual Studio adatbázis-importálási párbeszédablak képernyőképe.

Az Új Project párbeszédpanelen adjon meg egy project nevet. A projekt nevének nem kell egyeznie az adatbázis nevével. Szükség szerint ellenőrizze és módosítsa a projekt helyét. Az alapértelmezett importálási beállítások séma alapján importálják az objektumokat mappákba, majd az objektum típusát. Módosíthatja az importálási beállításokat a mappastruktúra módosításához vagy az importálandó objektumok engedélyeinek belefoglalásához. Indítsa el az importálást.

Az Adatbázis importálása párbeszédpanel üzenetként jeleníti meg az importálási folyamatot. Amikor az importálás befejeződik, az importált objektumok megjelennek a Megoldáskezelő. A folyamat a naplókat egy fájlban tárolja a projektkönyvtárban a következő alatt Import Schema Logs: . Válassza ki a Befejezésopciót.

Warning

Ez az oktatóanyag nem érhető el az SDK-stílusú projektekhez (előzetes verzió) a 2022-Visual Studio. Ehelyett SQL Server Management Studio (SSMS) vagy Visual Studio Code használjon.

A Visual Studio Code adatbázis-objektumkezelő nézetében válasszon ki egy adatbázist, amelyből projektet szeretne létrehozni. Kattintson a jobb gombbal az adatbázisra, és válassza a Projekt létrehozása adatbázisbóllehetőséget.

Képernyőkép a

A Visual Studio Code Projekt létrehozása adatbázisból párbeszédpanelen a projekt nevének és helyének megadása szükséges. Az alapértelmezett importálási beállítások séma alapján importálják az objektumokat mappákba, majd az objektum típusát. A Létrehozás lehetőség kiválasztása előtt választhat egy másik mappastruktúrát, vagy dönthet úgy, hogy az importálandó objektumokhoz engedélyeket is belefoglal.

Nyissa meg az Adatbázisprojektek nézetet az új projekt és az importált objektumdefiníciók megtekintéséhez.

A SQL Server Management Studio Object Explorer kattintson a jobb gombbal arra az adatbázisra, amelyből project szeretne létrehozni, és válassza a Project létrehozása adatbázisból... lehetőséget a Feladatok menüben.

Képernyőkép az SQL Server Management Studio „Új SQL-projekt adatbázisból” párbeszédpaneléről.

Az SQL-Project létrehozása az adatbázisból párbeszédpanelen ellenőrizze a kijelölt adatbázist, és szükség szerint módosítsa a project nevét és helyét. Az új projekt a kijelölt adatbázis objektumaival jön létre, és sémák szerint mappákba, majd objektumtípusba rendezve jön létre.

A rendszer automatikusan létrehoz egy megoldásfájlt a projektmappa feletti mappában, és a létrehozás után megnyílik a Megoldáskezelő. Ha egy meglévő megoldáshoz szeretné hozzáadni az új projektet, válassza a Hozzáadás a megoldáshoz lehetőséget, és keresse meg a megoldásfájlt. Válassza a Create lehetőséget a projekt létrehozásához.

Az SqlPackage parancssori felülettel kinyerhet egy meglévő adatbázis sémáját egy SQL-projektbe. Az alábbi SqlPackage parancs kinyeri egy adatbázis sémáját egy teljes SQL-projektbe. A .sql fájlok beágyazott séma- és objektumtípus-mappák szerint vannak rendszerezve, és létrejön egy .sqlproj fájl a projekt kezeléséhez az adatbázis beállításainak megfelelő tulajdonságokkal.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProject

2. lépés: Az adatbáziskód véglegesítése és leküldése egy Git-távoli adattárba

Az SQL-projekt létrehozása után indítsa el az adatbázis Git-ütemtervét egy helyi Git-adattárban.

Ha az SQL-projekt meg van nyitva a Visual Studióban, hozzon létre egy helyi Git-adattárat, majd töltse fel egy távoli adattárba.

  1. Válassza a Git>Create Git-adattárat a menüsávon.

  2. A Git-adattár létrehozása párbeszédpanelen, a Küldés új távoli tárolóba szakaszban válassza a GitHub vagy az Azure DevOps lehetőséget. Ha úgy dönt, hogy a módosításokat a GitHubra küldi, jelentkezzen be a GitHub-fiókjába, amikor erre felszólítják. Ha Azure DevOps választ, jelentkezzen be Azure DevOps fiókjába, és válasszon vagy hozzon létre egy projektet.

  3. Adja meg az adattár nevét és leírását. Győződjön meg arról, hogy a .gitignore sablonVisualStudio értékre van állítva, és válassza a Létrehozás és leküldés lehetőséget.

Visual Studio létrehozza a helyi Git-adattárat, létrehoz egy kezdeti véglegesítést az SQL-projektfájlokkal, és leküldi azt a távolira.

A kód sikeres leküldésének ellenőrzéséhez nyisson meg egy böngészőt, és keresse meg az adattárat GitHub (https://github.com) vagy Azure DevOps (https://dev.azure.com). Látnia kell az SQL-projektfájlokat, beleértve a .sqlproj fájlt és az .sql objektumdefiníciókat.

További információt a Gitről a Visual Studio című témakörben talál.

Warning

Ez az oktatóanyag nem érhető el az SDK-stílusú projektekhez (előzetes verzió) a 2022-Visual Studio. Ehelyett SQL Server Management Studio (SSMS) vagy Visual Studio Code használjon.

Miután megnyitotta az SQL-projektmappát a Visual Studio Code-ban, inicializáljon egy helyi Git-tárházat, majd küldje fel egy távoli tárházba.

  1. Nyissa meg a Forrásvezérlő nézetet a Tevékenységsáv Forrásvezérlő ikonjának kiválasztásával, vagy nyomja le a billentyűt Ctrl+Shift+G.

  2. Válassza az Inicializálási adattár lehetőséget egy új Git-adattár létrehozásához az aktuális mappában.

  3. Az összes projektfájl nyomon nem követett módosításként jelenik meg. Válassza a + melletti ikont az összes fájl előkészítéséhez.

  4. Adjon meg egy véglegesítési üzenetet, például Initial commit of SQL project az üzenet beviteli mezőjében, és válassza a Véglegesítés gombot (pipa ikon).

  5. A Forráskezelés nézetben válassza a Publish Branch lehetőséget a helyi adattár távoli adattárba való feltöltéséhez. Válassza ki, hogy a közzététel a GitHubra vagy az Azure DevOpsba történjen, majd kövesse a bejelentkezési utasításokat. Válasszon egy adattár láthatóságát (nyilvános vagy privát), és erősítse meg.

A kód sikeres leküldésének ellenőrzéséhez nyisson meg egy böngészőt, és keresse meg az adattárat GitHub (https://github.com) vagy Azure DevOps (https://dev.azure.com). Látnia kell az SQL-projektfájlokat, beleértve a .sqlproj fájlt és az .sql objektumdefiníciókat.

További információért lásd: Verziókövetés a Visual Studio Code-ban.

Miután megnyitotta az SQL-projektet az SQL Server Management Studio-ban, hozzon létre egy helyi Git-adattárat, majd küldje fel egy távoli adattárba.

  1. Válassza a Git>Create Git-adattárat a menüsávon.

  2. A Git-adattár létrehozása párbeszédpanelen, a Küldés új távoli tárolóba szakaszban válassza a GitHub vagy az Azure DevOps lehetőséget. Ha úgy dönt, hogy a módosításokat a GitHubra küldi, jelentkezzen be a GitHub-fiókjába, amikor erre felszólítják. Ha Azure DevOps választ, jelentkezzen be Azure DevOps fiókjába, és válasszon vagy hozzon létre egy projektet.

  3. Adja meg az adattár nevét és leírását. Győződjön meg arról, hogy a .gitignore sablonVisualStudio értékre van állítva, és válassza a Létrehozás és leküldés lehetőséget.

Az SSMS létrehozza a helyi Git-adattárat, létrehoz egy kezdeti véglegesítést az SQL-projektfájlokkal, és leküldi azt a távolira.

A kód sikeres leküldésének ellenőrzéséhez nyisson meg egy böngészőt, és keresse meg az adattárat GitHub (https://github.com) vagy Azure DevOps (https://dev.azure.com). Látnia kell az SQL-projektfájlokat, beleértve a .sqlproj fájlt és az .sql objektumdefiníciókat.

További információt a Gitről a Visual Studio című témakörben talál.

Az SQL-projekt könyvtárából inicializáljon egy helyi Git-adattárat, véglegesítse az összes fájlt, és küldjön le egy távoli fájlt.

  1. Inicializáljon egy új Git-adattárat, adjon hozzá egy .gitignore fájlt, és hozzon létre egy kezdeti véglegesítést:

    cd MyDatabaseProject
    git init
    dotnet new gitignore
    git add .
    git commit -m "Initial commit of SQL project"
    
  2. Hozzon létre egy új távoli adattárat GitHub vagy Azure DevOps:

    • GitHub: Nyissa meg https://github.com/new és hozzon létre egy új adattárat. Ne inicializálja azt README-vel, .gitignore-val vagy licenccel.
    • Azure DevOps: Nyissa meg a Azure DevOps projektet, válassza ki a Repos, és hozzon létre egy új adattárat. Törölje a jelölést a README hozzáadása jelölőnégyzetből.
  3. Adja hozzá a távolit, és küldje le a kezdeti véglegesítést:

    git remote add origin <your-repository-url>
    git push -u origin main
    

    Cserélje le <your-repository-url> a GitHub vagy Azure DevOps által az adattár létrehozásakor megadott URL-címre.

A kód sikeres leküldésének ellenőrzéséhez nyisson meg egy böngészőt, és nyissa meg az adattárat. Látnia kell az SQL-projektfájlokat, beleértve a .sqlproj fájlt és az .sql objektumdefiníciókat.

3. lépés: Az adatbázis módosításainak alkalmazása a meglévő kódra

Ha az adatbázisséma az SQL-projekten kívül változik (például egy adatbázis közvetlen módosítása, ORM-migrálás vagy ügynöki műveletek révén), frissítheti a projektet, hogy tükrözze ezeket a változásokat.

Használja a séma-összehasonlítást az SQL-projekt adatbázis alapján történő frissítéséhez.

  1. A SQL Server Object Explorer kattintson a jobb gombbal az adatbázisra, és válassza a Séma összehasonlítása lehetőséget.

  2. A Séma összehasonlítása ablakban az adatbázis van beállítva forrásként. Válassza ki a Cél kiválasztása legördülő listát, és válassza a Cél kiválasztása lehetőséget.

  3. A Célséma kiválasztása párbeszédpanelen válassza Project, majd válassza ki az SQL-adatbázis project. Kattintson az OK gombra.

  4. Az összehasonlítás futtatásához válassza a Összehasonlítás lehetőséget. Az eredmények az adatbázis (forrás) és a projekt (cél) közötti különbségeket jelenítik meg.

  5. Tekintse át a különbségeket. Vegye ki a jelölést azoknál a módosításoknál, amelyeket nem szeretne alkalmazni a projektre.

  6. Válassza a Frissítés lehetőséget a kijelölt módosítások SQL-projektre való alkalmazásához.

A projektfájlok az adatbázisséma szerint frissülnek. Tekintse át a módosításokat a Git-módosítások ablakban, írjon be egy véglegesítési üzenetet, és válassza az Összes véglegesítése lehetőséget. A Leküldés gombra kattintva leküldheti a módosításokat a távoli adattárba.

Warning

Ez az oktatóanyag nem érhető el az SDK-stílusú projektekhez (előzetes verzió) a 2022-Visual Studio. Ehelyett SQL Server Management Studio (SSMS) vagy Visual Studio Code használjon.

Az Projekt frissítése adatbázisból paranccsal frissítheti az SQL-projektet az adatbázisból.

  1. Az adatbázis-objektumkezelőben kattintson a jobb gombbal az adatbázisra, és válassza az SQL Database Projects>Update Project lehetőséget az Adatbázisból.

  2. Válassza ki a frissíteni és megerősíteni kívánt SQL Database-projektet.

  3. Az összehasonlítás fut, és alkalmazza az adatbázis módosításait a projektre. A frissített .sql fájlok módosított fájlokként jelennek meg a Forrásvezérlő nézetben.

Tekintse át a módosításokat a Forrásvezérlő nézetben, állítsa be a módosított fájlokat, írjon be egy véglegesítési üzenetet, és válassza a Véglegesítés lehetőséget. A Módosítások szinkronizálása lehetőséget választva leküldheti a véglegesítést a távoli adattárba.

Használja a séma-összehasonlítást az SQL-projekt adatbázis alapján történő frissítéséhez.

  1. A Object Explorer kattintson a jobb gombbal az adatbázisra, és válassza a Feladatok>séma összehasonlítása (előzetes verzió) lehetőséget.

  2. A Séma összehasonlítása ablakban az adatbázis van beállítva forrásként. Válassza ki a cél melletti hárompontos gombot, majd válassza ki célként az SQL-adatbázisprojektet.

  3. Az összehasonlítás futtatásához válassza a Összehasonlítás lehetőséget. Az eredmények az adatbázis (forrás) és a projekt (cél) közötti különbségeket jelenítik meg.

  4. Tekintse át a különbségeket. Vegye ki a jelölést azoknál a módosításoknál, amelyeket nem szeretne alkalmazni a projektre.

  5. Válassza az Alkalmaz lehetőséget a kijelölt módosítások SQL-projektre való alkalmazásához.

A projektfájlok az adatbázisséma szerint frissülnek. Tekintse át a módosításokat a Git-módosítások ablakban, írjon be egy véglegesítési üzenetet, és válassza az Összes véglegesítése lehetőséget. A Leküldés gombra kattintva leküldheti a módosításokat a távoli adattárba.

Az SqlPackage használatával újragenerálhatja az SQL-projektet az adatbázisból, és lecseréli a meglévő projektfájlokat az aktuális adatbázissémára. Míg a többi SQL-projekteszköz grafikus felületet biztosít, az SqlPackage parancssori megközelítést kínál az automatizáláshoz, amely nem biztosít lehetőséget a fájlmódosítások áttekintésére azok alkalmazása előtt.

  1. Távolítsa el a meglévő SQL-objektumfájlokat, és hozza létre újra a projektet:

    rm -rf MyDatabaseProject
    sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProject
    
  2. Tekintse át a módosításokat a Gittel, és véglegesítse a következőt:

    cd MyDatabaseProject
    dotnet new gitignore
    git add .
    git status
    git commit -m "Update project from database changes"
    git push
    

4. lépés: (nem kötelező) A Git távoli adattár módosításainak lekérése és alkalmazása a helyi adatbázisra

Amikor más csapattagok küldik le az adatbázisséma módosításait a távoli adattárba, lekérheti ezeket a módosításokat, és üzembe helyezheti őket a helyi fejlesztési adatbázisban.

  1. A menüsávon válassza a Git>Lekérés lehetőséget a távoli adattár legújabb módosításainak lekéréséhez.

  2. A Megoldáskezelő kattintson a jobb gombbal az SQL Database projektcsomópontra, és válassza a Séma összehasonlítása lehetőséget.

  3. A Séma összehasonlítása ablakban a projekt forrásként van beállítva. Válassza ki a Cél kiválasztása legördülő listát, és válassza a Cél kiválasztása lehetőséget.

  4. A Célséma kiválasztása párbeszédpanelen válassza az Adatbázis lehetőséget, és válassza ki a helyi fejlesztési adatbázis-kapcsolatot. Kattintson az OK gombra.

  5. Az összehasonlítás futtatásához válassza a Összehasonlítás lehetőséget. Az eredmények a projekt (forrás) és az adatbázis (cél) közötti különbségeket jelenítik meg.

  6. Tekintse át a különbségeket annak ellenőrzéséhez, hogy a módosítások várhatóak-e.

  7. Válassza a Frissítés lehetőséget a módosítások adatbázisra való alkalmazásához.

Warning

Ez az oktatóanyag nem érhető el az SDK-stílusú projektekhez (előzetes verzió) a 2022-Visual Studio. Ehelyett SQL Server Management Studio (SSMS) vagy Visual Studio Code használjon.

  1. Nyissa meg a Forrásvezérlő nézetet, és válassza a Lekérés lehetőséget a ... menüből (vagy használja az állapotsor szinkronizálási gombját) a legújabb módosítások lekéréséhez a távoli adattárból.

  2. Az Adatbázisprojektek nézetben kattintson a jobb gombbal az SQL-adatbázisprojektre, és válassza a Séma összehasonlítása lehetőséget.

  3. A Séma összehasonlítása ablakban a projekt forrásként van beállítva. Válassza ki a cél melletti hárompontos gombot, majd válassza célként a helyi fejlesztési adatbázis-kapcsolatot.

  4. Az összehasonlítás futtatásához válassza a Összehasonlítás lehetőséget. Az eredmények a projekt (forrás) és az adatbázis (cél) közötti különbségeket jelenítik meg.

  5. Tekintse át a különbségeket annak ellenőrzéséhez, hogy a módosítások várhatóak-e.

  6. Az Alkalmaz gombra kattintva alkalmazza a módosításokat az adatbázisra.

  1. Nyisson meg egy terminált, és futtassa git pull a projektkönyvtárban a legújabb módosítások lekéréséhez a távoli adattárból.

  2. A Megoldáskezelő kattintson a jobb gombbal az SQL Database projektcsomópontra, és válassza a Séma összehasonlítása (előzetes verzió) lehetőséget.

  3. A Séma összehasonlítása ablakban a projekt forrásként van beállítva. Válassza ki a célt, és válassza ki a helyi fejlesztési adatbázis-kapcsolatot.

  4. Az összehasonlítás futtatásához válassza a Összehasonlítás lehetőséget. Az eredmények a projekt (forrás) és az adatbázis (cél) közötti különbségeket jelenítik meg.

  5. Tekintse át a különbségeket annak ellenőrzéséhez, hogy a módosítások várhatóak-e.

  6. Az Alkalmaz gombra kattintva alkalmazza a módosításokat az adatbázisra.

  1. A legújabb módosítások lekérése a távoli adattárból:

    cd MyDatabaseProject
    git pull
    
  2. A projekt létrehozása a módosítások sikeres fordításának ellenőrzéséhez:

    dotnet build
    
  3. A helyi fejlesztési adatbázis módosításainak üzembe helyezése az SqlPackage használatával:

    sqlpackage /a:Publish /sf:bin/Debug/MyDatabaseProject.dacpac /tsn:localhost /tdn:MyDatabase
    

    Cserélje le MyDatabaseProject.dacpac a kimeneti fájl nevére .dacpac , és szükség szerint frissítse a célkiszolgáló (/tsn) és az adatbázis (/tdn) értékeit.