Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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
SQL database w Microsoft Fabric
Cykl programowania projektu bazy danych SQL umożliwia zintegrowanie programowania bazy danych z przepływami pracy ciągłej integracji i ciągłego wdrażania (CI/CD) znanymi jako najlepsze rozwiązanie programistyczne. Chociaż wdrożenie projektu bazy danych SQL można wykonać ręcznie, zaleca się użycie potoku wdrażania w celu zautomatyzowania procesu wdrażania, tak aby bieżące wdrożenia były uruchamiane na podstawie ciągłego programowania lokalnego bez dodatkowego nakładu pracy.
W tym artykule opisano procedurę tworzenia nowego projektu SQL, dodawanie obiektów do projektu oraz konfigurowanie potoku ciągłego wdrażania na potrzeby kompilowania i wdrażania projektu za pomocą GitHub Actions. Samouczek obejmuje zawartość artykułu Rozpoczynanie pracy z projektami baz danych SQL. Podczas gdy samouczek implementuje potok wdrażania w usłudze GitHub actions, te same pojęcia dotyczą usług Azure DevOps, GitLab i innych środowisk automatyzacji.
W tym samouczku ty:
- Tworzenie nowego projektu SQL
- Dodawanie obiektów do projektu
- Budowanie projektu lokalnie
- Sprawdzanie projektu w kontroli źródła
- Dodawanie kroku kompilacji projektu do potoku ciągłego wdrażania
- Dodawanie kroku wdrażania
.dacpac
do potoku ciągłego wdrażania
Jeśli już wykonałeś kroki rozpoczęcie pracy z projektami bazy danych SQL, możesz przejść do kroku 4 . Na końcu tego samouczka projekt SQL będzie automatycznie kompilować i wdrażać zmiany w docelowej bazie danych.
Warunki wstępne
- SDK .NET 8
- VS Code
- rozszerzenie SQL Database Projects lub rozszerzenie SQL Database Projects dla programu VS Code
- zestaw SDK platformy .NET 8
- SqlPackage interfejsu wiersza polecenia
- Szablony .NET Microsoft.Build.Sql.Templates
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Upewnij się, że masz następujące elementy, aby ukończyć konfigurację potoku w usłudze GitHub:
Konto usługi GitHub, na którym można utworzyć repozytorium. Utwórz jeden za darmo.
Funkcja GitHub Actions jest włączona w repozytorium.
Notatka
Aby ukończyć wdrażanie projektu bazy danych SQL, musisz mieć dostęp do wystąpienia usługi Azure SQL lub programu SQL Server. Możesz programować lokalnie bezpłatnie za pomocą programu SQL Server Developer Edition w systemie Windows lub w kontenerach .
Krok 1. Tworzenie nowego projektu
Rozpoczynamy nasz projekt od utworzenia nowego projektu bazy danych SQL przed ręcznym dodaniem do niego obiektów. Istnieją inne sposoby tworzenia projektu, który umożliwia natychmiastowe wypełnienie projektu obiektami z istniejącej bazy danych, na przykład przy użyciu narzędzi do porównywania schematów .
Wybierz pozycję Plik, Nowy, a następnie Projekt.
W oknie dialogowym Nowy projekt użyj terminu SQL Server w polu wyszukiwania. Najlepszym wynikiem powinien być projekt bazy danych SQL Server .
Wybierz pozycję Dalej, aby przejść do następnego kroku. Podaj nazwę projektu, która nie musi być zgodna z nazwą bazy danych. Zweryfikuj i zmodyfikuj lokalizację projektu zgodnie z potrzebami.
Wybierz pozycję Utwórz, aby utworzyć projekt. Pusty projekt jest otwierany i widoczny w Eksploratorze rozwiązań do edycji.
Wybierz Plik, Nowy, następnie Projekt.
W oknie dialogowym Nowy projekt użyj terminu SQL Server w polu wyszukiwania. Najlepszym wynikiem powinno być projekt bazy danych programu SQL Server, styl zestawu SDK (wersja zapoznawcza).
Wybierz pozycję Dalej, aby przejść do następnego kroku. Podaj nazwę projektu, która nie musi być zgodna z nazwą bazy danych. Zweryfikuj i zmodyfikuj lokalizację projektu zgodnie z potrzebami.
Wybierz pozycję Utwórz, aby utworzyć projekt. Pusty projekt jest otwierany i widoczny w Eksploratorze rozwiązań do edycji.
W widoku Database Projects programu VS Code lub Azure Data Studio wybierz przycisk Nowy projekt.
Pierwszy monit określa, który szablon projektu ma być używany, głównie na podstawie tego, czy platforma docelowa jest programem SQL Server, czy usługą Azure SQL. Jeśli zostanie wyświetlony monit o wybranie określonej wersji programu SQL, wybierz wersję zgodną z docelową bazą danych, ale jeśli docelowa wersja bazy danych jest nieznana, wybierz najnowszą wersję, ponieważ wartość można zmodyfikować później.
Wprowadź nazwę projektu w wyświetlonym tekście, który nie musi być zgodny z nazwą bazy danych.
W oknie dialogowym "Wybierz folder", które się pojawi, wybierz katalog, w którym będą przechowywane folder projektu, plik .sqlproj
oraz pozostałe elementy.
Po wyświetleniu monitu o utworzenie projektu w stylu zestawu SDK wybierz pozycję Tak.
Po zakończeniu pusty projekt zostanie otwarty i widoczny w widoku Database Projects do edycji.
Po zainstalowaniu szablonów platformy .NET dla projektów Microsoft.Build.Sql można utworzyć nowy projekt bazy danych SQL z poziomu wiersza polecenia. Opcja -n
określa nazwę projektu, a opcja -tp
określa platformę docelową projektu.
Użyj opcji -h
, aby wyświetlić wszystkie dostępne opcje.
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
Krok 2. Dodawanie obiektów do projektu
W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Dodaj, a następnie Tabela. Zostanie wyświetlone okno dialogowe Dodawanie nowego elementu, w którym można określić nazwę tabeli. Wybierz pozycję Dodaj, aby utworzyć tabelę w projekcie SQL.
Tabela jest otwierana w projektancie tabel programu Visual Studio z definicją tabeli szablonu, w której można dodawać kolumny, indeksy i inne właściwości tabeli. Zapisz plik po zakończeniu wprowadzania początkowych zmian.
Więcej obiektów bazy danych można dodać za pomocą okna dialogowego Dodawanie nowego elementu, takich jak widoki, procedury składowane i funkcje. Uzyskaj dostęp do okna dialogowego, klikając prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań i wybierając Dodaj, a następnie żądany typ obiektu. Pliki w projekcie można organizować w foldery za pomocą opcji Nowy folder w obszarze Dodaj.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Dodaj, a następnie Nowy element. Zostanie wyświetlone okno dialogowe Dodawanie nowego elementu, wybierz Pokaż wszystkie szablony, a następnie Tabela. Określ nazwę tabeli jako nazwę pliku i wybierz pozycję Dodaj, aby utworzyć tabelę w projekcie SQL.
Tabela jest otwierana w edytorze zapytań programu Visual Studio z definicją tabeli szablonu, w której można dodawać kolumny, indeksy i inne właściwości tabeli. Zapisz plik po zakończeniu wprowadzania początkowych zmian.
Więcej obiektów bazy danych można dodać za pomocą okna dialogowego Dodawanie nowego elementu, takich jak widoki, procedury składowane i funkcje. Uzyskaj dostęp do okna dialogowego, klikając prawym przyciskiem myszy węzeł projektu w eksploratorze rozwiązań i wybierając pozycję Dodaj, a następnie żądany typ obiektu po Pokaż wszystkie szablony. Pliki w projekcie można organizować w formie folderów za pomocą opcji Nowy folder w sekcji Dodaj.
W widoku Database Projects programu VS Code lub Azure Data Studio kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Dodaj tabelę. W wyświetlonym oknie dialogowym określ nazwę tabeli.
Tabela jest otwierana w edytorze tekstów z definicją tabeli szablonów, w której można dodawać kolumny, indeksy i inne właściwości tabeli. Zapisz plik po zakończeniu wprowadzania początkowych zmian.
Więcej obiektów bazy danych można dodać za pomocą menu kontekstowego w węźle projektu, takich jak widoki, procedury składowane i funkcje. Uzyskaj dostęp do okna dialogowego, klikając prawym przyciskiem myszy węzeł projektu w projektach bazy danych widoku programu VS Code lub narzędzia Azure Data Studio, a następnie żądany typ obiektu. Pliki w projekcie można organizować w foldery za pomocą opcji Nowy folder w obszarze Dodaj.
Pliki można dodawać do projektu, tworząc je w katalogu projektu lub folderach podrzędnych. Zaleca się, aby rozszerzenie pliku było .sql
oraz aby organizować pliki według typu obiektu lub według schematu i typu obiektu.
Szablon podstawowy tabeli może służyć jako punkt wyjścia do tworzenia nowego obiektu tabeli w projekcie:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
);
Krok 3. Kompilowanie projektu
Proces kompilacji weryfikuje relacje między obiektami i składnią względem platformy docelowej określonej w pliku projektu. Dane wyjściowe artefaktu z procesu kompilacji to plik .dacpac
, którego można użyć do wdrożenia projektu w docelowej bazie danych i zawiera skompilowany model schematu bazy danych.
W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Build.
Zostanie automatycznie otwarte okno danych wyjściowych w celu wyświetlenia procesu kompilacji. Jeśli występują błędy lub ostrzeżenia, są one wyświetlane w oknie danych wyjściowych. W przypadku pomyślnej kompilacji artefakt kompilacji (plik.dacpac
) jest tworzony, a jego lokalizacja jest uwzględniana w danych wyjściowych kompilacji (wartość domyślna to bin\Debug\projectname.dacpac
).
W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Build.
Zostanie automatycznie otwarte okno danych wyjściowych w celu wyświetlenia procesu kompilacji. Jeśli występują błędy lub ostrzeżenia, są one wyświetlane w oknie danych wyjściowych. W przypadku pomyślnej kompilacji artefakt kompilacji (plik.dacpac
) jest tworzony, a jego lokalizacja została uwzględniona w danych wyjściowych kompilacji (domyślnie jest to bin\Debug\projectname.dacpac
).
W widoku Database Projects programu VS Code lub Azure Data Studio kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Build.
Zostanie automatycznie otwarte okno danych wyjściowych w celu wyświetlenia procesu kompilacji. Jeśli występują błędy lub ostrzeżenia, są one wyświetlane w oknie danych wyjściowych. W przypadku pomyślnej kompilacji, tworzony jest artefakt kompilacji (plik.dacpac
), a jego lokalizacja jest uwzględniana w danych wyjściowych kompilacji (wartość domyślna to bin/Debug/projectname.dacpac
).
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
Dane wyjściowe kompilacji zawierają błędy lub ostrzeżenia oraz określone pliki i numery wierszy, w których występują. W przypadku pomyślnej kompilacji artefakt kompilacji (plik.dacpac
) jest tworzony, a jego lokalizacja jest uwzględniana w danych wyjściowych kompilacji (wartość domyślna to bin/Debug/projectname.dacpac
).
Krok 4: Dodaj projekt do systemu kontroli wersji
Zainicjujemy nasz projekt jako repozytorium Git i zatwierdzimy pliki projektu do systemu kontroli wersji. Ten krok jest niezbędny, aby umożliwić udostępnianie projektu innym osobom i użycie go w potoku ciągłego wdrażania.
Z menu Git w programie Visual Studio wybierz pozycję Utwórz repozytorium Git.
W oknie dialogowym tworzenie repozytorium Git w sekcji Wypychanie do nowej zdalnej wybierz pozycję GitHub.
W sekcji Tworzenie nowego repozytorium GitHub okna dialogowego Tworzenie repozytorium Git wprowadź nazwę repozytorium, które chcesz utworzyć. (Jeśli jeszcze nie zalogowałeś się na swoje konto GitHub, możesz to zrobić również na tym ekranie).
W obszarze Inicjowanie lokalnego repozytorium Gitnależy użyć szablonu .gitignore, aby określić wszelkie celowo nieśledzone pliki, które mają być ignorowane przez usługę Git. Aby dowiedzieć się więcej o .gitignore, zobacz Ignorowanie plików. Aby dowiedzieć się więcej na temat licencjonowania, zobacz Licensing a repository.
Po zalogowaniu się i wprowadzeniu informacji o repozytorium wybierz przycisk Utwórz i wypchnij, aby utworzyć repozytorium i dodać aplikację.
W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Publikuj....
Zostanie otwarte okno dialogowe publikowania, w którym nawiązujesz połączenie do docelowej bazy danych. Jeśli nie masz istniejącego wystąpienia SQL do wdrożenia, baza danych LocalDB ((localdb)\MSSQLLocalDB
) jest zainstalowana z programem Visual Studio i może być używana do testowania i programowania.
Określ nazwę bazy danych i wybierz pozycję Publikuj, aby wdrożyć projekt w docelowej bazie danych lub Generuj skrypt w celu wygenerowania skryptu do przejrzenia przed wykonaniem.
Repozytorium lokalne można zainicjować i opublikować je bezpośrednio w usłudze GitHub z poziomu programu VS Code lub narzędzia Azure Data Studio. Ta akcja powoduje utworzenie nowego repozytorium na koncie usługi GitHub i wypchnięcie zmian kodu lokalnego do repozytorium zdalnego w jednym kroku.
Użyj przycisku Publikuj w usłudze GitHub w widoku Kontroli źródła w programie VS Code lub programie Azure Data Studio. Następnie zostanie wyświetlony monit o podanie nazwy i opisu repozytorium oraz określenia, czy ma ona być publiczna, czy prywatna.
Alternatywnie możesz zainicjować repozytorium lokalne i wypchnąć je do usługi GitHub, wykonując kroki podane podczas tworzenia pustego repozytorium w witrynie GitHub.
Zainicjuj nowe repozytorium Git w katalogu projektu i zatwierdź pliki projektu do kontroli źródła.
git init
git add .
git commit -m "Initial commit"
Utwórz nowe repozytorium w usłudze GitHub i wypchnij repozytorium lokalne do repozytorium zdalnego.
git remote add origin <repository-url>
git push -u origin main
Krok 5. Dodawanie kroku kompilacji projektu do potoku ciągłego wdrażania
Projekty SQL są wspierane przez bibliotekę platformy .NET, a w rezultacie projekty są kompilowane za pomocą polecenia dotnet build
. To polecenie jest podstawą nawet najprostszych potoków ciągłej integracji i ciągłego wdrażania (CI/CD). Krok kompilacji można dodać do potoku ciągłego wdrażania, który tworzymy w ramach GitHub Actions.
W katalogu głównym repozytorium utwórz nowy katalog o nazwie
.github/workflows
. Ten katalog będzie zawierać plik przepływu pracy, który definiuje potok ciągłego wdrażania.W katalogu
.github/workflows
utwórz nowy plik o nazwiesqlproj-sample.yml
.Dodaj następującą zawartość do pliku
sqlproj-sample.yml
, edytując nazwę projektu, aby pasować do nazwy i ścieżki 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
Zatwierdź plik przepływu pracy w repozytorium i wypchnij zmiany do repozytorium zdalnego.
Na GitHub.com przejdź do strony głównej repozytorium. Pod nazwą repozytorium wybierz pozycję Actions. Na pasku bocznym po lewej stronie wybierz właśnie utworzony przepływ pracy. Ostatnie uruchomienie przepływu pracy powinno pojawić się na liście przebiegów przepływu pracy z momentu wypchnięcia pliku przepływu pracy do repozytorium.
Więcej informacji na temat podstaw tworzenia swojego pierwszego przepływu pracy GitHub Actions można znaleźć w przewodniku startowym GitHub Actions.
Krok 6: Dodaj etap wdrażania .dacpac
do pipeline ciągłego wdrożenia
Skompilowany model schematu bazy danych w pliku .dacpac
można wdrożyć w docelowej bazie danych przy użyciu narzędzia wiersza polecenia SqlPackage
lub innych narzędzi wdrażania. Proces wdrażania określa niezbędne kroki aktualizacji docelowej bazy danych w celu dopasowania do schematu zdefiniowanego w .dacpac
, tworzenia lub zmieniania obiektów zgodnie z potrzebami na podstawie obiektów już istniejących w bazie danych. Aby na przykład wdrożyć plik .dacpac
w docelowej bazie danych na podstawie parametrów połączenia:
sqlpackage /Action:Publish /SourceFile:bin/Debug/MyDatabaseProject.dacpac /TargetConnectionString:{yourconnectionstring}
Proces wdrażania jest idempotentny, co oznacza, że można go uruchomić wiele razy bez powodowania problemów. Tworzony potok skompiluje i wdroży nasz projekt SQL za każdym razem, gdy zmiana zostanie zaewidencjonowana w gałęzi main
repozytorium. Zamiast wykonywać polecenie SqlPackage
bezpośrednio w potoku wdrażania, możemy użyć zadania wdrożeniowego, które abstrahuje polecenie i udostępnia dodatkowe funkcje, takie jak rejestrowanie, obsługa błędów i konfiguracja zadania. Zadanie wdrażania GitHub sql-action można dodać do potoku ciągłego wdrażania w GitHub Actions.
Notatka
Uruchomienie wdrożenia ze środowiska automatyzacji wymaga skonfigurowania bazy danych i środowiska, tak aby wdrożenie może uzyskać dostęp do bazy danych i uwierzytelnić się. W usłudze Azure SQL Database lub programie SQL Server na maszynie wirtualnej może to wymagać skonfigurowania reguły zapory, aby umożliwić środowisku automatyzacji łączenie się z bazą danych, a także podawanie parametrów połączenia z wymaganymi poświadczeniami. W dokumentacji usługi GitHub sql-action dostępne są wskazówki.
Otwórz plik
sqlproj-sample.yml
w katalogu.github/workflows
.Dodaj następujący krok do pliku
sqlproj-sample.yml
po kroku kompilacji:- name: Deploy uses: azure/sql-action@v2 with: connection-string: ${{ secrets.SQL_CONNECTION_STRING }} action: 'publish' path: 'bin/Debug/MyDatabaseProject.dacpac'
Przed zatwierdzeniem zmian dodaj tajne hasło do repozytorium, które zawiera ciąg połączenia z docelową bazą danych. W repozytorium na GitHub.com przejdź do Ustawienia, a następnie Sekrety. Wybierz pozycję Nowy klucz tajny repozytorium i dodaj tajny klucz o nazwie
SQL_CONNECTION_STRING
z wartością ciągu połączenia do docelowej bazy danych.Zatwierdź zmiany z
sqlproj-sample.yml
do repozytorium i prześlij zmiany do repozytorium zdalnego.Wróć do historii przepływu pracy w GitHub.com i wybierz najnowszy przebieg przepływu pracy. Krok wdrażania powinien być widoczny na liście kroków przebiegu przepływu pracy, a przepływ pracy zwraca kod powodzenia.
Zweryfikuj wdrożenie, łącząc się z docelową bazą danych i sprawdzając, czy obiekty w projekcie znajdują się w bazie danych.
Wdrożenia usługi GitHub można dodatkowo zabezpieczyć, ustanawiając relację środowiska w przepływie pracy i wymagając zatwierdzenia przed uruchomieniem wdrożenia. Więcej informacji na temat ochrony środowiska i ochrony tajemnic można znaleźć w dokumentacji usługi GitHub Actions.