Číst v angličtině

Sdílet prostřednictvím


Kurz: Vytvoření a nasazení projektu SQL

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Database v Microsoft Fabric

Vývojový cyklus projektu databáze SQL umožňuje integraci vývoje databází do pracovních postupů kontinuální integrace a průběžného nasazování (CI/CD), které jsou známé jako osvědčený postup vývoje. I když je možné nasazení projektu databáze SQL provést ručně, doporučujeme použít kanál nasazení k automatizaci procesu nasazení tak, aby probíhající nasazení běžela na základě vašeho trvalého místního vývoje bez dalšího úsilí.

Tento článek popisuje vytvoření nového projektu SQL, přidání objektů do projektu a nastavení kanálu průběžného nasazování pro sestavení a nasazení projektu pomocí GitHub Actions. Tento kurz je nadmnožinou obsahu článku Začínáme s projekty databáze SQL. Zatímco kurz implementuje kanál nasazení v GitHub Actions, stejné koncepty platí pro Azure DevOps, GitLab a další automatizační prostředí.

V tomto kurzu:

  1. Vytvoření nového projektu SQL
  2. Přidání objektů do projektu
  3. Sestavte projekt lokálně
  4. Kontrola projektu ve správě zdrojového kódu
  5. Přidání kroku sestavení projektu do kanálu průběžného nasazování
  6. Přidání kroku nasazení .dacpac do procesu průběžného nasazování

Pokud jste už dokončili kroky začínáme s projekty databáze SQL, můžete přeskočit na krok 4. Na tomto konci tohoto kurzu se projekt SQL automaticky sestaví a nasadí změny do cílové databáze.

Požadavky

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

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

Ujistěte se, že máte k dokončení nastavení pipeline na GitHubu následující položky:

Poznámka

K dokončení nasazení projektu databáze SQL potřebujete přístup k instanci Azure SQL nebo SQL Serveru. Můžete vyvíjet místně zdarma s SQL Server developer edition ve Windows nebo v kontejnerech .

Krok 1: Vytvoření nového projektu

Projekt zahájíme tak, že před ručním přidáním objektů do něj vytvoříme nový projekt databáze SQL. Existují další způsoby, jak vytvořit projekt, který umožňuje okamžité naplnění projektu objekty z existující databáze, například pomocí nástrojů pro porovnání schémat .

Vyberte soubor, nový, a pak projekt.

V dialogovém okně Nový projekt použijte výraz SQL Server ve vyhledávacím poli. Nejlepší výsledek by měl být projekt databáze SQL Serveru.

snímek obrazovky s dialogovým oknem Nový projekt

Pokud chcete pokračovat k dalšímu kroku, vyberte Další. Zadejte název projektu, který se nemusí shodovat s názvem databáze. Podle potřeby ověřte a upravte umístění projektu.

Vyberte možnost Vytvořit pro vytvoření projektu. Prázdný projekt se otevře a zobrazí v průzkumníku řešení pro úpravy.

Vyberte soubor, nový, a pak projekt.

V dialogovém okně Nový projekt použijte výraz SQL Server ve vyhledávacím poli. Hlavní výsledek by měl být projekt databáze SQL Serveru, ve stylu SDK (preview).

snímek obrazovky s dialogovým oknem Nový projekt

Pokud chcete pokračovat k dalšímu kroku, vyberte Další. Zadejte název projektu, který se nemusí shodovat s názvem databáze. Podle potřeby ověřte a upravte umístění projektu.

Vyberte možnost Vytvořit pro vytvoření projektu. Prázdný projekt se otevře a zobrazí v průzkumníku řešení pro úpravy.

V zobrazení Databázové projekty ve VS Code nebo Azure Data Studio vyberte tlačítko Nový projekt.

Snímek nového zobrazení.

První výzva určuje, která šablona projektu se má použít, a primárně na základě toho, jestli je cílovou platformou SQL Server nebo Azure SQL. Pokud se zobrazí výzva k výběru konkrétní verze SQL, zvolte verzi, která odpovídá cílové databázi, ale pokud je verze cílové databáze neznámá, zvolte nejnovější verzi, protože hodnotu lze později upravit.

Do zobrazeného textového vstupu zadejte název projektu, který nemusí odpovídat názvu databáze.

V dialogovém okně Vybrat složku, které se zobrazí, vyberte adresář pro složku projektu, .sqlproj soubor a další obsah, ve kterém se má nacházet.

Po zobrazení výzvy, zda chcete vytvořit projekt ve stylu sady SDK, vyberte Ano.

Po dokončení se prázdný projekt otevře a zobrazí v zobrazení Databázových projektů pro úpravy.

Pomocí šablon .NET pro projekty Microsoft.Build.Sql můžete vytvořit nový projekt databáze SQL z příkazového řádku. Možnost -n určuje název projektu a možnost -tp určuje cílovou platformu projektu.

Pomocí možnosti -h zobrazíte všechny dostupné možnosti.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Krok 2: Přidání objektů do projektu

V Průzkumníku řešeníklikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat, potom Tabulka. Zobrazí se dialogové okno Přidat novou položku, kde můžete zadat název tabulky. Vyberte Přidat a vytvořte tabulku v projektu SQL.

Tabulka se otevře v návrháři tabulek sady Visual Studio s definicí tabulky šablony, kde můžete přidat sloupce, indexy a další vlastnosti tabulky. Až dokončíte počáteční úpravy, soubor uložte.

Další databázové objekty je možné přidat prostřednictvím dialogového okna Přidat novou položku, jako jsou zobrazení, uložené procedury a funkce. Přejděte do dialogového okna tak, že kliknete pravým tlačítkem na uzel projektu v průzkumníku řešení a vyberete Přidata potom požadovaný typ objektu. Soubory v projektu lze uspořádat do složek prostřednictvím možnosti Nová složka v části Přidat.

V Průzkumníku řešeníklikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat, poté Nová položka. Zobrazí se dialogové okno Přidat novou položku, vyberte Zobrazit všechny šablony a pak tabulka. Zadejte název tabulky jako název souboru a vyberte Přidat a vytvořte tabulku v projektu SQL.

Tabulka se otevře v editoru dotazů sady Visual Studio s definicí tabulky šablony, kde můžete přidat sloupce, indexy a další vlastnosti tabulky. Až dokončíte počáteční úpravy, soubor uložte.

Další databázové objekty je možné přidat prostřednictvím dialogového okna Přidat novou položku, jako jsou zobrazení, uložené procedury a funkce. Otevřete dialogové okno kliknutím pravým tlačítkem myši na uzel projektu v Průzkumníku řešení a vyberete možnost Přidat, pak vyberte požadovaný typ objektu poté, co zvolíte Zobrazit všechny šablony. Soubory v projektu lze uspořádat do složek prostřednictvím možnosti Nová složka v části Přidat.

V zobrazení Databázové projekty nástroje VS Code nebo Azure Data Studio klikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat tabulku. V zobrazeném dialogovém okně zadejte název tabulky.

Tabulka se otevře v textovém editoru s definicí tabulky šablony, kde můžete přidat sloupce, indexy a další vlastnosti tabulky. Až dokončíte počáteční úpravy, soubor uložte.

Další databázové objekty je možné přidat prostřednictvím místní nabídky v uzlu projektu, jako jsou zobrazení, uložené procedury a funkce. Otevřete dialogové okno kliknutím pravým tlačítkem myši na uzel projektu v zobrazení Databázových projektů ve VS Code nebo Azure Data Studio a poté vyberte požadovaný typ objektu. Soubory v projektu lze uspořádat do složek prostřednictvím možnosti Nová složka v části Přidat.

Soubory lze do projektu přidat tak, že je vytvoříte v adresáři projektu nebo vnořených složkách. Přípona souboru by měla být .sql a organizace podle typu objektu nebo schématu a typu objektu se doporučuje.

Základní šablonu tabulky lze použít jako výchozí bod pro vytvoření nového objektu tabulky v projektu:

CREATE TABLE [dbo].[Table1]
(
    [Id] INT NOT NULL PRIMARY KEY
);

Krok 3: Sestavení projektu

Proces sestavení ověří vztahy mezi objekty a syntaxí s cílovou platformou zadanou v souboru projektu. Výstup artefaktu z procesu sestavení je soubor .dacpac, který lze použít k nasazení projektu do cílové databáze a obsahuje zkompilovaný model schématu databáze.

V Průzkumníku řešeníklikněte pravým tlačítkem na uzel projektu a vyberte Sestavit.

Automaticky se otevře okno výstupu pro zobrazení procesu sestavení. Pokud dojde k chybám nebo upozorněním, zobrazí se ve výstupním okně. Při úspěšném sestavení se vytvoří artefakt sestavení (soubor.dacpac) a jeho umístění je zahrnuto ve výstupu sestavení (výchozí hodnota je bin\Debug\projectname.dacpac).

V Průzkumníku řešeníklikněte pravým tlačítkem na uzel projektu a vyberte Sestavit.

Automaticky se otevře okno výstupu pro zobrazení procesu sestavení. Pokud dojde k chybám nebo upozorněním, zobrazí se ve výstupním okně. Při úspěšném sestavení se vytvoří artefakt sestavení (soubor.dacpac) a jeho umístění je zahrnuto ve výstupu sestavení (výchozí hodnota je bin\Debug\projectname.dacpac).

Ve zobrazení databázového projektu nástroje VS Code nebo Azure Data Studio klikněte pravým tlačítkem na uzel projektu a vyberte Sestavit.

Automaticky se otevře okno výstupu pro zobrazení procesu sestavení. Pokud dojde k chybám nebo upozorněním, zobrazí se ve výstupním okně. Při úspěšném sestavení se vytvoří artefakt sestavení (soubor.dacpac) a jeho umístění je zahrnuto ve výstupu sestavení (výchozí hodnota je bin/Debug/projectname.dacpac).

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

Výstup sestavení obsahuje všechny chyby nebo upozornění a konkrétní soubory a čísla řádků, ve kterých k nim dochází. Při úspěšném sestavení se vytvoří artefakt sestavení (soubor.dacpac) a jeho umístění je zahrnuto ve výstupu sestavení (výchozí hodnota je bin/Debug/projectname.dacpac).

Krok 4: Kontrola projektu ve správě zdrojového kódu

Projekt inicializujeme jako úložiště Git a potvrdíme soubory projektu do správy zdrojového kódu. Tento krok je nezbytný k tomu, aby byl projekt sdílen s ostatními a aby se mohl používat v kanálu průběžného nasazování.

  1. V nabídce Git v sadě Visual Studio vyberte Vytvořit úložiště Git.

    Snímek obrazovky s možností Vytvořit úložiště Git v nabídce Git ve Visual Studiu

  2. V dialogovém okně Vytvořit úložiště Git v části Nasdílení do nového vzdáleného úložiště zvolte GitHub.

  3. V části Vytvoření nového úložiště GitHub v dialogovém okně Vytvoření úložiště Git zadejte název úložiště, které chcete vytvořit. (Pokud jste se ještě nepřihlásili ke svému účtu GitHub, můžete to udělat i z této obrazovky.)

    snímek obrazovky dialogového okna pro vytvoření úložiště Git ve Visual Studio se zvýrazněným výběrem GitHub

    V části Inicializace místního úložiště Gitbyste měli použít možnost šablony .gitignore k určení všech úmyslně nesledovaných souborů, které chcete, aby Git ignoroval. Další informace o souboru .gitignore najdete v tématu Ignorování souborů. Další informace o licencování najdete v tématu Licencování úložiště.

  4. Po přihlášení a zadání informací o úložišti vyberte tlačítko Vytvořit a odeslat, abyste vytvořili úložiště a přidali aplikaci.

V Průzkumníku řešeníklikněte pravým tlačítkem na uzel projektu a vyberte Publikovat....

Otevře se dialogové okno pro publikování, kde nastavíte připojení cílové databáze. Pokud nemáte existující instanci SQL pro nasazení, nainstaluje se v sadě Visual Studio LocalDB ((localdb)\MSSQLLocalDB) a dá se použít k testování a vývoji.

Zadejte název databáze a vyberte Publikovat nasadit projekt do cílové databáze nebo Generovat skript vygenerovat skript, který se má před spuštěním zkontrolovat.

Můžete inicializovat a místní úložiště a publikovat ho přímo na GitHubu z VS Code nebo Azure Data Studia. Tato akce vytvoří na účtu GitHubu nové úložiště a v jednom kroku odešle změny místního kódu do vzdáleného úložiště.

Použijte tlačítko Publikovat na GitHub v zobrazení Správa zdrojového kódu v editoru VS Code nebo Azure Data Studio. Pak se zobrazí výzva k zadání názvu a popisu úložiště a také k jeho zadání jako veřejného nebo soukromého.

snímek obrazovky dialogového okna pro vytvoření úložiště Git ve Visual Studio se zvýrazněným výběrem GitHub

Případně můžete inicializovat místní úložiště a odeslat ho do GitHubu podle kroků uvedených při vytváření prázdného úložiště na GitHubu.

Inicializuje nové úložiště Git v adresáři projektu a potvrdí soubory projektu do správy zdrojového kódu.

git init
git add .
git commit -m "Initial commit"

Vytvořte nové úložiště na GitHubu a odešlete místní úložiště do vzdáleného úložiště.

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

Krok 5: Přidání kroku sestavení projektu do kanálu průběžného nasazování

Projekty SQL jsou podporovány knihovnou .NET a výsledkem je sestavení projektů pomocí příkazu dotnet build. Tento příkaz je základem dokonce i nejzásadnějších kanálů kontinuální integrace a průběžného nasazování (CI/CD). Krok sestavení je možné přidat do kanálu průběžného nasazování, který vytvoříme v GitHub Actions.

  1. V kořenovém adresáři úložiště vytvořte nový adresář s názvem .github/workflows. Tento adresář bude obsahovat soubor pracovního postupu, který definuje kanál průběžného nasazování.

  2. V adresáři .github/workflows vytvořte nový soubor s názvem sqlproj-sample.yml.

  3. Do souboru sqlproj-sample.yml přidejte následující obsah a upravte název projektu tak, aby odpovídal názvu a cestě projektu:

    name: sqlproj-sample
    
    on:
      push:
        branches: [ "main" ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v4
    
        - name: Setup .NET
          uses: actions/setup-dotnet@v4
          with:
            dotnet-version: 8.0.x
    
        - name: Build
          run: dotnet build MyDatabaseProject.sqlproj
    
  4. Potvrďte soubor pracovního postupu do úložiště a odešlete změny do vzdáleného úložiště.

  5. Na GitHub.com přejděte na hlavní stránku úložiště. Pod názvem úložiště vyberte Akce. Na levém bočním panelu vyberte pracovní postup, který jste právě vytvořili. Poslední spuštění pracovního postupu by se mělo zobrazit v seznamu spuštění pracovních postupů od chvíle, kdy jste odeslali soubor pracovního postupu do úložiště.

Další informace o základech vytvoření prvního pracovního postupu GitHub Actions najdete v průvodci rychlým začátkem GitHub Actions .

Krok 6: Přidání kroku nasazení .dacpac do kanálu průběžného nasazování

Kompilovaný model schématu databáze v souboru .dacpac lze nasadit do cílové databáze pomocí nástroje příkazového řádku SqlPackage nebo jiných nástrojů pro nasazení. Proces nasazení určuje nezbytné kroky k aktualizaci cílové databáze tak, aby odpovídala schématu definovanému v .dacpac, vytváření nebo změny objektů podle potřeby na základě objektů, které již v databázi existují. Pokud chcete například nasadit soubor .dacpac do cílové databáze na základě připojovacího řetězce:

sqlpackage /Action:Publish /SourceFile:bin/Debug/MyDatabaseProject.dacpac /TargetConnectionString:{yourconnectionstring}

snímek obrazovky procesu porovnání zdrojových a cílových objektů DacFx před nasazením

Proces nasazení je idempotentní, což znamená, že se dá spustit několikrát, aniž by to způsobovalo problémy. Pipeline, který vytváříme, sestaví a nasadí náš projekt SQL pokaždé, když je změna zapsána do větve main našeho úložiště. Místo spuštění příkazu SqlPackage přímo v kanálu nasazení můžeme použít úlohu nasazení, která příkaz abstrahuje a poskytuje další funkce, jako je protokolování, zpracování chyb a konfigurace úloh. Úlohu nasazení GitHub sql-action lze přidat do kanálu průběžného nasazování v GitHub Actions.

Poznámka

Spuštění nasazení z automatizačního prostředí vyžaduje konfiguraci databáze a prostředí tak, aby nasazení mělo přístup k databázi a mohlo se autentizovat. Ve službě Azure SQL Database nebo SQL Serveru na virtuálním počítači to může vyžadovat nastavení pravidla brány firewall, které umožní prostředí automatizace připojit se k databázi a poskytnout připojovací řetězec s potřebnými přihlašovacími údaji. Pokyny najdete v dokumentaci GitHub sql-action.

  1. Otevřete soubor sqlproj-sample.yml v adresáři .github/workflows.

  2. Po kroku sestavení přidejte do souboru sqlproj-sample.yml následující krok:

    - name: Deploy
      uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.SQL_CONNECTION_STRING }}
        action: 'publish'
        path: 'bin/Debug/MyDatabaseProject.dacpac'
    
  3. Před potvrzením změn přidejte do úložiště tajný klíč, který obsahuje připojovací řetězec cílové databáze. V úložišti na GitHub.com přejděte do nastavenía potom do tajemství. Vyberte Tajný kód nového úložiště a přidejte tajný kód s názvem SQL_CONNECTION_STRING s hodnotou připojovacího řetězce do cílové databáze.

    snímek obrazovky s nastavením úložiště GitHub se zvýrazněným tlačítkem Nový tajný kód úložiště

  4. Potvrďte změny od sqlproj-sample.yml do úložiště a pushněte je do vzdáleného úložiště.

  5. Přejděte zpět do historie pracovního postupu v GitHub.com a vyberte poslední spuštění pracovního postupu. Krok nasazení by se měl zobrazit v seznamu kroků pro spuštění pracovního postupu a pracovní postup vrátí kód úspěchu.

  6. Ověřte nasazení tak, že se připojíte k cílové databázi a zkontrolujete, že objekty v projektu jsou v databázi.

Nasazení GitHubu je možné dále zabezpečit vytvořením vztahu prostředí v pracovním postupu a vyžadováním schválení před spuštěním nasazení. Další informace o ochraně prostředí a ochraně tajných kódů jsou k dispozici v dokumentaci GitHub Actions.

Získání nápovědy