Notatka
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
Baza danych SQL w Microsoft Fabric
Przechowywanie schematu bazy danych w usłudze Git zapewnia kilka korzyści, w tym kontrolę wersji, współpracę i możliwość śledzenia zmian w czasie. Takie podejście jest szczególnie przydatne w przypadku programowania opartego na kodzie, w którym można zdefiniować schemat bazy danych za pomocą kodu i zastosować zmiany bezpośrednio do środowiska deweloperskiego przy użyciu narzędzia ORM lub agenta kodowania, takiego jak GitHub Copilot.
Z tego samouczka dowiesz się, jak przechowywać schemat bazy danych w usłudze Git i zarządzać nim w ramach przepływu pracy programowania.
- Tworzenie nowego projektu SQL na podstawie istniejącej bazy danych
- Zatwierdź i wypchnij kod bazy danych do zdalnego repozytorium Git
- Stosowanie zmian z bazy danych do istniejącego kodu
- Ściąganie zmian ze zdalnego repozytorium Git i stosowanie ich do lokalnej bazy danych (opcjonalnie)
Po zakończeniu możesz śledzić zmiany w bazie danych w systemie kontroli wersji i współpracować z zespołem nad zmianami w bazie danych za pomocą repozytorium Git.
Note
Aby ukończyć samouczek, musisz mieć dostęp do bazy danych SQL. Możesz bezpłatnie programować lokalnie, korzystając z wersji deweloperskiej programu SQL Server w systemie Windows lub w kontenerach.
Wymagania wstępne
Warning
Ten samouczek nie jest dostępny dla projektów typu SDK (wersja zapoznawcza) w programie Visual Studio 2022. Zamiast tego użyj SQL Server Management Studio (SSMS) lub Visual Studio Code.
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Krok 1. Tworzenie nowego projektu SQL z istniejącej bazy danych
Aby reprezentować bazę danych w kontroli źródła, użyj formatu projektu bazy danych SQL . Projekt zawiera pliki .sql dla każdego obiektu bazy danych oraz plik .sqlproj z ustawieniami bazy danych. Gdy wyświetlasz projekt w Eksploratorze plików i kontroli wersji, struktura projektu SQL odzwierciedla strukturę widoczną podczas przeglądania bazy danych w Eksploratorze obiektów.
W Visual Studio SQL Server Eksplorator obiektów kliknij prawym przyciskiem myszy bazę danych, z której chcesz utworzyć project, a następnie wybierz pozycję Utwórz nową Project... .
W oknie dialogowym Utwórz nowy projekt wprowadź nazwę projektu. Nazwa projektu nie musi być zgodna z nazwą bazy danych. Zweryfikuj i zmodyfikuj lokalizację projektu zgodnie z potrzebami. Domyślne ustawienia importu importują obiekty do folderów najpierw według schematu, a następnie według typu obiektu. Możesz zmodyfikować ustawienia importu, aby zmienić strukturę folderów lub uwzględnić uprawnienia do importowanych obiektów. Rozpocznij import.
W oknie dialogowym Importowanie bazy danych wyświetlany jest postęp importowania jako komunikaty. Po zakończeniu importowania można zobaczyć zaimportowane obiekty w Eksplorator rozwiązań. Proces przechowuje logi w pliku w katalogu projektu pod Import Schema Logs. Wybierz Zakończ
Warning
Ten samouczek nie jest dostępny dla projektów typu SDK (wersja zapoznawcza) w programie Visual Studio 2022. Zamiast tego użyj SQL Server Management Studio (SSMS) lub Visual Studio Code.
W widoku eksploratora obiektów bazy danych w programie Visual Studio Code wybierz bazę danych, z której chcesz utworzyć projekt. Kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Utwórz projekt z bazy danych.
W Visual Studio Code okno dialogowe Utwórz projekt z bazy danych wymaga nazwy i lokalizacji projektu. Domyślne ustawienia importu importują obiekty do folderów najpierw według schematu, a następnie według typu obiektu. Możesz wybrać inną strukturę folderów lub wybrać opcję dołączenia uprawnień do importowanych obiektów przed wybraniem pozycji Utwórz.
Otwórz widok Database Projects, aby wyświetlić nowy projekt i zaimportowane definicje obiektów.
W Eksplorator obiektów w SQL Server Management Studio kliknij prawym przyciskiem myszy bazę danych, z której chcesz utworzyć project, a następnie wybierz polecenie Utwórz Project z bazy danych... w menu Zadania.
W oknie dialogowym Tworzenie projektu SQL z bazy danych sprawdź wybraną bazę danych i w razie potrzeby zmień nazwę projektu oraz jego lokalizację. Nowy projekt jest tworzony z obiektami z wybranej bazy danych i rozmieszczony w folderach według schematu, a następnie typu obiektu.
Plik rozwiązania zostanie automatycznie utworzony w folderze powyżej folderu projektu i zostanie otwarty w Eksplorator rozwiązań po utworzeniu. Jeśli chcesz dodać nowy projekt do istniejącego rozwiązania, wybierz pozycję Dodaj do rozwiązania i przejdź do pliku rozwiązania. Wybierz polecenie Create (Utwórz), aby utworzyć projekt.
Użyj interfejsu wiersza polecenia sqlPackage, aby wyodrębnić schemat istniejącej bazy danych do projektu SQL. Następujące polecenie SqlPackage wyodrębnia schemat bazy danych do kompletnego projektu SQL. Pliki .sql są zorganizowane w zagnieżdżonych folderach według schematu i typu obiektu, a plik .sqlproj jest tworzony do zarządzania projektem z właściwościami ustawionymi zgodnie z opcjami bazy danych.
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProject
Krok 2. Zatwierdzanie i wypychanie kodu bazy danych do zdalnego repozytorium Git
Po utworzeniu projektu SQL uruchom oś czasu usługi Git dla bazy danych w lokalnym repozytorium Git.
Po otwarciu projektu SQL w Visual Studio utwórz lokalne repozytorium Git i wypchnij go do zdalnego.
Wybierz z paska menu pozycję Git>Utwórz repozytorium Git.
W oknie dialogowym Tworzenie repozytorium Git, w sekcji Wypchnij do nowego repozytorium zdalnego, wybierz opcję GitHub lub Azure DevOps. Jeśli zdecydujesz się wypchnąć zmiany do serwisu GitHub, po wyświetleniu monitu zaloguj się do swojego konta GitHub. Jeśli wybierzesz Azure DevOps, zaloguj się do konta Azure DevOps i wybierz lub utwórz projekt.
Wprowadź nazwę i opis repozytorium. Upewnij się, że szablon .gitignore jest ustawiony na VisualStudio, a następnie wybierz pozycję Utwórz i wypchnij.
Visual Studio tworzy lokalne repozytorium Git, tworzy pierwszy commit obejmujący pliki projektu SQL i wypycha je do zdalnego repozytorium.
Aby sprawdzić, czy kod został wypchnięty pomyślnie, otwórz przeglądarkę i przejdź do repozytorium w GitHub (https://github.com) lub Azure DevOps (https://dev.azure.com). Powinny zostać wyświetlone pliki projektu SQL, w tym .sqlproj plik i .sql definicje obiektów.
Aby uzyskać więcej informacji, zobacz About Git in Visual Studio (Informacje o usłudze Git w Visual Studio).
Warning
Ten samouczek nie jest dostępny dla projektów w stylu SDK (wersja zapoznawcza) w programie Visual Studio 2022. Zamiast tego użyj SQL Server Management Studio (SSMS) lub Visual Studio Code.
Po otwarciu folderu projektu SQL w Visual Studio Code zainicjuj lokalne repozytorium Git i wypchnij je do zdalnego.
Otwórz widok Kontrola źródła , wybierając ikonę Kontrola źródła na pasku działań lub naciśnij klawisz
Ctrl+Shift+G.Wybierz pozycję Zainicjuj repozytorium , aby utworzyć nowe repozytorium Git w bieżącym folderze.
Wszystkie pliki projektu są wyświetlane jako niezaśledzone zmiany. Wybierz ikonę + obok pozycji Zmiany , aby przygotować wszystkie pliki.
Wprowadź komunikat zatwierdzenia, taki jak
Initial commit of SQL projectw polu wprowadzania komunikatu, a następnie wybierz przycisk Zatwierdź (ikona znacznika wyboru).W widoku kontroli źródła wybierz Publikuj gałąź, aby wypchnąć lokalne repozytorium do repozytorium zdalnego. Wybierz, czy chcesz opublikować do GitHub czy do Azure DevOps, i postępuj zgodnie z monitami dotyczącymi logowania. Wybierz widoczność repozytorium (publiczną lub prywatną) i potwierdź.
Aby sprawdzić, czy kod został wypchnięty pomyślnie, otwórz przeglądarkę i przejdź do repozytorium w GitHub (https://github.com) lub Azure DevOps (https://dev.azure.com). Powinny zostać wyświetlone pliki projektu SQL, w tym .sqlproj plik i .sql definicje obiektów.
Aby uzyskać więcej informacji, zobacz Kontrola źródła w Visual Studio Code.
Po otwarciu projektu SQL w SQL Server Management Studio utwórz lokalne repozytorium Git i wypchnij go do zdalnego.
Wybierz z paska menu pozycję Git>Utwórz repozytorium Git.
W oknie dialogowym Tworzenie repozytorium Git, w sekcji Wypychanie do nowego repozytorium zdalnego, wybierz GitHub lub Azure DevOps. Jeśli zdecydujesz się wypchnąć zmiany do serwisu GitHub, gdy zostanie wyświetlony monit, zaloguj się na swoje konto GitHub. Jeśli wybierzesz Azure DevOps, zaloguj się do konta Azure DevOps i wybierz lub utwórz projekt.
Wprowadź nazwę i opis repozytorium. Upewnij się , że szablon .gitignore ma ustawioną wartość VisualStudio , a następnie wybierz pozycję Utwórz i wypchnij.
SSMS tworzy lokalne repozytorium Git, tworzy początkowy commit obejmujący pliki projektu SQL i przesyła je do repozytorium zdalnego.
Aby sprawdzić, czy kod został wypchnięty pomyślnie, otwórz przeglądarkę i przejdź do repozytorium w GitHub (https://github.com) lub Azure DevOps (https://dev.azure.com). Powinny zostać wyświetlone pliki projektu SQL, w tym .sqlproj plik i .sql definicje obiektów.
Aby uzyskać więcej informacji, zobacz About Git in Visual Studio (Informacje o usłudze Git w Visual Studio).
W katalogu projektu SQL zainicjuj lokalne repozytorium Git, zatwierdź wszystkie pliki i wypchnij je do repozytorium zdalnego.
Zainicjuj nowe repozytorium Git, dodaj
.gitignoreplik i utwórz wstępne zatwierdzenie:cd MyDatabaseProject git init dotnet new gitignore git add . git commit -m "Initial commit of SQL project"Utwórz nowe repozytorium zdalne w GitHub lub Azure DevOps:
-
GitHub: przejdź do https://github.com/new witryny i utwórz nowe repozytorium. Nie inicjuj go za pomocą pliku README,
.gitignorelub licencji. - Azure DevOps: przejdź do projektu Azure DevOps, wybierz pozycję Repos i utwórz nowe repozytorium. Usuń zaznaczenie pola wyboru Dodaj plik README.
-
GitHub: przejdź do https://github.com/new witryny i utwórz nowe repozytorium. Nie inicjuj go za pomocą pliku README,
Dodaj zdalne i wypchnij wstępne zatwierdzenie:
git remote add origin <your-repository-url> git push -u origin mainZastąp
<your-repository-url>ciąg adresem URL podanym przez GitHub lub Azure DevOps podczas tworzenia repozytorium.
Aby sprawdzić, czy kod został wypchnięty pomyślnie, otwórz przeglądarkę i przejdź do repozytorium. Powinny zostać wyświetlone pliki projektu SQL, w tym .sqlproj plik i .sql definicje obiektów.
Krok 3. Stosowanie zmian z bazy danych do istniejącego kodu
Gdy schemat bazy danych zmienia się poza projektem SQL (na przykład poprzez bezpośrednie modyfikacje bazy danych, migrację ORM lub akcje agentów), możesz zaktualizować projekt, aby odzwierciedlał te zmiany.
Użyj funkcji porównywania schematów, aby zaktualizować projekt SQL na podstawie bazy danych.
W SQL Server Eksplorator obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Porównaj schemat.
W oknie Porównanie schematów baza danych jest ustawiana jako źródło. Wybierz listę rozwijaną Wybierz element docelowy , a następnie wybierz pozycję Wybierz element docelowy.
W oknie dialogowym Wybieranie schematu docelowego wybierz pozycję Project i wybierz project bazy danych SQL. Kliknij przycisk OK.
Wybierz pozycję Porównaj , aby uruchomić porównanie. Wyniki przedstawiają różnice między bazą danych (źródłem) a projektem (elementem docelowym).
Przejrzyj różnice. Usuń zaznaczenie wszelkich zmian, których nie chcesz stosować do projektu.
Wybierz pozycję Aktualizuj, aby zastosować wybrane zmiany do projektu SQL.
Pliki projektu są aktualizowane tak, aby były zgodne ze schematem bazy danych. Przejrzyj zmiany w oknie Zmiany usługi Git , wprowadź komunikat zatwierdzenia i wybierz pozycję Zatwierdź wszystko. Wybierz Push, aby wypchnąć zmiany do zdalnego repozytorium.
Warning
Ten samouczek nie jest dostępny dla projektów w stylu SDK (wersja zapoznawcza) w programie Visual Studio 2022. Zamiast tego użyj SQL Server Management Studio (SSMS) lub Visual Studio Code.
Użyj polecenia Update Project from Database, aby zaktualizować project SQL z bazy danych.
W Eksploratorze obiektów bazy danych kliknij prawym przyciskiem myszy bazę danych, a następnie wybierz pozycję Projekty baz danych SQL>Aktualizuj projekt z bazy danych.
Wybierz projekt bazy danych SQL, aby zaktualizować i potwierdzić.
Uruchamiane jest porównanie i zmiany z bazy danych są stosowane w projekcie. Zaktualizowane
.sqlpliki są wyświetlane w widoku Kontroli źródła jako zmodyfikowane pliki.
Przejrzyj zmiany w widoku Kontroli źródła , przygotuj zmodyfikowane pliki, wprowadź komunikat zatwierdzenia i wybierz pozycję Zatwierdź. Wybierz pozycję Synchronizuj zmiany, aby przesłać commit do repozytorium zdalnego.
Użyj porównywania schematów, aby zaktualizować projekt SQL na podstawie bazy danych.
W Eksplorator obiektów kliknij prawym przyciskiem myszy na bazie danych i wybierz pozycję Zadania>Porównanie schematów (wersja zapoznawcza).
W oknie Porównanie schematów baza danych jest ustawiana jako źródło. Wybierz przycisk wielokropka docelowego i wybierz projekt bazy danych SQL jako element docelowy.
Wybierz pozycję Porównaj , aby uruchomić porównanie. Wyniki przedstawiają różnice między bazą danych (źródłem) a projektem (elementem docelowym).
Przejrzyj różnice. Usuń zaznaczenie wszelkich zmian, których nie chcesz stosować do projektu.
Wybierz pozycję Zastosuj , aby zastosować wybrane zmiany do projektu SQL.
Pliki projektu są aktualizowane tak, aby były zgodne ze schematem bazy danych. Przejrzyj zmiany w oknie Zmiany usługi Git , wprowadź komunikat zatwierdzenia i wybierz pozycję Zatwierdź wszystko. Wybierz Push, aby przesłać zmiany do zdalnego repozytorium.
Użyj pakietu SqlPackage, aby ponownie wygenerować projekt SQL z bazy danych, zastępując istniejące pliki projektu bieżącym schematem bazy danych. Chociaż inne narzędzia projektu SQL udostępniają interfejs graficzny, pakiet SqlPackage oferuje podejście wiersza polecenia do automatyzacji, które nie zapewnia możliwości przejrzenia zmian plików przed ich zastosowaniem.
Usuń istniejące pliki obiektów SQL i ponownie wygeneruj projekt:
rm -rf MyDatabaseProject sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProjectPrzejrzyj zmiany za pomocą narzędzia Git i zatwierdź:
cd MyDatabaseProject dotnet new gitignore git add . git status git commit -m "Update project from database changes" git push
Krok 4. (opcjonalnie) Ściąganie zmian ze zdalnego repozytorium Git i stosowanie ich do lokalnej bazy danych
Gdy inni członkowie zespołu wypychają zmiany schematu bazy danych do repozytorium zdalnego, możesz ściągnąć te zmiany i wdrożyć je w lokalnej bazie danych deweloperskich.
Wybierz z paska menu pozycje Git>Pull, aby pobrać najnowsze zmiany ze zdalnego repozytorium.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu bazy danych SQL i wybierz pozycję Porównaj schemat.
W oknie Porównanie schematów projekt jest ustawiony jako źródło. Wybierz listę rozwijaną Wybierz element docelowy , a następnie wybierz pozycję Wybierz element docelowy.
W oknie dialogowym Wybieranie schematu docelowego wybierz pozycję Baza danych i wybierz lokalne połączenie z bazą danych deweloperskich. Kliknij przycisk OK.
Wybierz pozycję Porównaj , aby uruchomić porównanie. Wyniki przedstawiają różnice między projektem (źródłem) a bazą danych (elementem docelowym).
Przejrzyj różnice, aby sprawdzić, czy zmiany są oczekiwane.
Wybierz pozycję Aktualizuj, aby zastosować zmiany do bazy danych.
Warning
Ten samouczek nie jest dostępny dla projektów w stylu SDK (wersja zapoznawcza) w programie Visual Studio 2022. Zamiast tego użyj SQL Server Management Studio (SSMS) lub Visual Studio Code.
Otwórz widok Kontrola źródła i wybierz pozycję Ściągaj z menu ... (lub użyj przycisku synchronizacji na pasku stanu), aby ściągnąć najnowsze zmiany ze zdalnego repozytorium.
W widoku Projekty bazy danych kliknij prawym przyciskiem myszy projekt bazy danych SQL i wybierz pozycję Porównaj schemat.
W oknie Porównanie schematów projekt jest ustawiony jako źródło. Wybierz przycisk wielokropka docelowego i wybierz lokalne połączenie bazy danych deweloperskich jako obiekt docelowy.
Wybierz pozycję Porównaj , aby uruchomić porównanie. Wyniki przedstawiają różnice między projektem (źródłem) a bazą danych (elementem docelowym).
Przejrzyj różnice, aby sprawdzić, czy zmiany są oczekiwane.
Wybierz pozycję Zastosuj , aby zastosować zmiany do bazy danych.
Otwórz terminal i uruchom
git pullpolecenie w katalogu projektu, aby ściągnąć najnowsze zmiany z repozytorium zdalnego.W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu bazy danych SQL i wybierz pozycję Porównaj schemat (wersja zapoznawcza).
W oknie Porównanie schematów projekt jest ustawiony jako źródło. Wybierz obiekt docelowy i wybierz połączenie z lokalną bazą danych środowiska programistycznego.
Wybierz pozycję Porównaj , aby uruchomić porównanie. Wyniki przedstawiają różnice między projektem (źródłem) a bazą danych (elementem docelowym).
Przejrzyj różnice, aby sprawdzić, czy zmiany są oczekiwane.
Wybierz pozycję Zastosuj , aby zastosować zmiany do bazy danych.
Pobierz najnowsze zmiany z repozytorium zdalnego:
cd MyDatabaseProject git pullSkompiluj projekt, aby zweryfikować poprawną kompilację zmian:
dotnet buildWdróż zmiany w lokalnej bazie danych deweloperskich przy użyciu pakietu SqlPackage:
sqlpackage /a:Publish /sf:bin/Debug/MyDatabaseProject.dacpac /tsn:localhost /tdn:MyDatabaseZastąp
MyDatabaseProject.dacpacnazwą Twojego pliku wyjściowego.dacpaci w razie potrzeby zaktualizuj wartości serwera docelowego (/tsn) oraz bazy danych (/tdn).