Database
 sql >> Datenbank >  >> RDS >> Database

Verfolgen von Datenbankänderungen mithilfe der Quellcodeverwaltung für Arbeitsordner

Dieser Artikel spricht über eine neue Methode zur Versionskontrolle einer Datenbank mithilfe eines Arbeitsordners, sodass historische Änderungen an der Datenbank zurückverfolgt werden können.

Übersicht

Da dieser Artikel auf dem neuen Ansatz zur Quellcodeverwaltung einer Datenbank durch Überwindung der Beschränkung des Arbeitsordners basiert, ist es besser, sich ein grundlegendes Verständnis des Arbeitsordners und verwandter Dinge anzueignen.

Hintergrund

Der Arbeitsordner hat bei Verwendung als Quellcodeverwaltung die Einschränkung, dass der Verlauf der Datenbankänderungen nicht gespeichert werden kann. In diesem Artikel konzentrieren wir uns jedoch auf die Methode zur Verwendung einer sekundären Quellcodeverwaltung (hinter den Kulissen) mit einem Arbeitsordner, der die Einschränkung überwinden kann.

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass die Leser mit den Grundlagen der Versionskontrolle von Datenbanken unter Verwendung von Working Folder und Git sowie mit Visual Studio Team Services (VSTS), das jetzt Azure DevOps heißt, vertraut sind.

Es wird empfohlen, die folgenden Tools zu verwenden, um alle in diesem Artikel erwähnten Schritte auszuführen:

  1. dbForge für SQL Server
  2. dbForge-Quellcodeverwaltung
  3. Git für Windows (oder einen beliebigen Git-Client)
  4. Azure DevOps (ehemals VSTS)

Dieser Artikel geht auch davon aus, dass Sie sich bei Azure DevOps angemeldet und bereits ein Konto haben, oder Sie können sich jetzt anmelden und ein neues Konto erstellen, wenn Sie alle Schritte in diesem Artikel befolgen möchten.

Alternativ kann jede Quellcodeverwaltung, die die Option Arbeitsordner bietet, mit SSMS (SQL Server Management Studio) verwendet werden, vorausgesetzt, Sie verfügen über die erforderlichen Fähigkeiten, um den konzeptionellen Ansatz aus diesem Artikel zu übernehmen und in die Tat umzusetzen.

Referenz

Um ein grundlegendes Verständnis für die Verwendung des Arbeitsordners für die Quellcodeverwaltungsdatenbank zu entwickeln, gehen Sie bitte meinen vorherigen Artikel durch, indem Sie auf den folgenden Link klicken:

Arbeitsordner in einfachen Schritten zur Versionsverwaltungsdatenbank verwenden

Einschränkung des Arbeitsordners

Zunächst müssen wir die Einschränkung bei der Verwendung des Arbeitsordners zur Quellcodeverwaltung einer Datenbank verstehen. Wenn Sie meinen vorherigen Artikel gelesen haben, kennen Sie bereits die Einschränkung.

Arbeitsordner-Szenario

Wenn wir die folgenden Schritte genau beobachten, können wir leicht verstehen, wie die Versionsverwaltungsoption für Arbeitsordner eingeschränkt ist, wenn es um die Datenbankversionierung geht:

  1. Dev1 erstellt eine neue Datenbank über Armbanduhren und nennt sie Watches nach Bedarf.
  2. Dev1 erstellt außerdem eine neue Tabelle und nennt sie Watch mit WatchId und WatchName Spalten nach Bedarf.
  3. Dev1 wurde nicht gebeten, eine bestimmte Quellcodeverwaltung zu verwenden, und das Projekt selbst befindet sich in der Entwicklungstestphase, also entscheidet er sich für die Quellcodeverwaltung des Arbeitsordners.
  4. Dev2 wurde gebeten, eine neue Tabelle DigitalWatch zu erstellen mit DigitalWatchId Spalte, also löscht er die Überwachung Tisch denken, dass mit der DigitalWatch Tabelle der Uhr Tabelle wird nicht mehr benötigt.
  5. Es gibt keine Möglichkeit, die von Dev2 vorgenommenen Änderungen rückgängig zu machen und die Überwachung zu erstellen Tabelle erneut mit der Quellcodeverwaltung des Arbeitsordners verwenden, da der Arbeitsordner gerade die neueste Version des Datenbankcodes erhalten hat.

Dies wird wie folgt dargestellt:

Arbeitsordner zum Verfolgen von Datenbankänderungen verwenden

Es gibt eine Möglichkeit, den Arbeitsordner zu erzwingen, um Datenbankänderungen zu verfolgen, was uns helfen kann, die verlorenen Datenbankobjekte wiederherzustellen, obwohl die standardmäßige Verwendung des Arbeitsordners den Verlauf der Datenbankänderungen nicht verwaltet.

Verwendung von Secondary Source Control (Git)

Dies kann erreicht werden, indem eine sekundäre Quellcodeverwaltung parallel zur Verwendung der Option Arbeitsordner verwendet wird, die etwas kompliziert zu verwalten ist, aber gut funktioniert.

In diesem Artikel verwenden wir Git als sekundäre Quellcodeverwaltung mit Arbeitsordner.

Git ist ein verteiltes Versionskontrollsystem und auch eine der heute am häufigsten verwendeten Quellcodeverwaltungen.

Warum Git mit Arbeitsordner?

Man könnte argumentieren, warum wir Git Seite an Seite mit Working Folder verwenden müssen, wenn wir Git direkt mit dbForge Studio für SQL Server zur Versionskontrolle unserer Datenbank verwenden können.

Die Antwort besteht darin, die flexible Natur der Versionsverwaltungsoption für Arbeitsordner zu verstehen und gleichzeitig das weitere Potenzial zu untersuchen, mit Arbeitsordner fortzufahren, anstatt es nur als vorübergehende Lösung zu verwenden.

Laden Sie einen beliebigen Git-Versionsverwaltungsclient oder Git für Windows herunter

Bevor wir fortfahren, installieren Sie bitte einen beliebigen Git-Versionsverwaltungsclient Ihrer Wahl, der uns hilft, Datenbankänderungen mit der Zeit zu speichern.

In diesem Artikel wird Git für den Windows-Client verwendet.

Installieren Sie Git für Windows mit den Optionen Ihrer Wahl. Wir haben die Standardoptionen zur Installation von Git für Windows verwendet.

Erstellen Sie ein Azure DevOps-Projekt mit Git

Melden Sie sich bei Ihrem Azure DevOps-Konto an und erstellen Sie ein neues Projekt SQLBookShopV3-Using-Working-Folder-with-Git und wählen Sie Git Quellcodeverwaltungsoption zum Erstellen eines privaten Repositorys wie folgt.

Gehen Sie zu Repositorys in der linken Navigationsleiste und kopieren Sie den Repo-Link (Git-Repository), indem Sie auf das Zwischenablage-Symbol neben dem Link klicken.

Der Plan ist, ein lokales Repo basierend auf dem Git-Repo-Link zu erstellen und dann den Arbeitsordner dadurch zu stärken.

Arbeitsordner unter Git Local Repos erstellen

Wenn Sie bereits den Git Local Repos-Ordner haben, erstellen Sie Ihren Arbeitsordner SQLBookShopV3-Working-Folder-with-Git dort:

C:\Users\\Source\Repos\SQLBookShopV3-Working-Folder-with-Git

Alternativ erstellen Sie die Repos Ordner an einem beliebigen Ort Ihrer Wahl und erstellen Sie dann den Unterordner SQLBookShopV3-Working-Folder-with-Git.

Neues lokales Git-Repository erstellen

Wir werden jetzt ein lokales Git-Repository erstellen, damit der Arbeitsordner darin Platz findet.

Öffnen Sie die Git-GUI die nach Git für Windows vorhanden sein sollte Installation.

Erstellen Sie das lokale Repository, indem Sie Neues Repository erstellen wählen Option.

Lokales Git-Repo (Repository) erstellen.

Das lokale Git-Repository wurde erfolgreich erstellt.

Remote Git Repo mit lokalem Repo verknüpfen

Das Erstellen eines lokalen Git-Repositorys reicht nicht aus, wir haben es mit unserem über Azure DevOps erstellten Git-Remote-Repository verknüpft.

Verknüpfen Sie das Remote-Git-Repo mit dem lokalen Git-Repo, indem Sie Remote auswählen aus dem Hauptmenü und klicken Sie dann auf Neue Fernbedienung hinzufügen und geben Sie dann den Speicherort Ihres Azure DevOps-Projekts ein.

SQLBookShopV3-Datenbank erstellen

Öffnen Sie dbForge Studio für SQL Server und erstellen Sie eine neue Datenbank SQLBookShopV3 .

Buchtabelle erstellen

Erstellen Sie das Buch Tabelle mit den Spalten BookId, Title und Author wie folgt.

CREATE TABLE SQLBookShopV3.dbo.Book (
  BookId INT IDENTITY
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
 ,Title VARCHAR(100)
 ,Author VARCHAR(50)
)
GO

Datenbank mit Quellcodeverwaltung für Arbeitsordner verknüpfen

Im nächsten Schritt werden wir die Datenbank mit der Quellcodeverwaltung des Arbeitsordners verknüpfen.

Klicken Sie mit der rechten Maustaste auf die Datenbank (SQLBookShopV3) und wählen Sie Quellcodeverwaltung aus , und dann Datenbank mit Quellcodeverwaltung verknüpfen .

Suchen Sie als Nächstes den zuvor erstellten Arbeitsordner, um ihn mit der Datenbank zu verknüpfen.

Änderungen in den Arbeitsordner übertragen

Gehen Sie zum Quellcodeverwaltungs-Manager und überprüfen Sie (Commit ) das neu erstellte Buch Tabelle in die Quellcodeverwaltung des Arbeitsordners.

Überprüfen Sie den Arbeitsordner, um das Buch anzuzeigen Tisch dort.

Push-Änderungen an die Git-Quellcodeverwaltung (Buchtabelle)

Öffnen Sie die Git-GUI erneut und klicken Sie auf Erneut scannen Schaltfläche, die jetzt das Tabellenobjekt anzeigen sollte, fügen Sie die folgenden anfänglichen Commits hinzu:

Initial Commit (die beim ersten Mal erstellte Book-Tabelle)

Führen Sie dann die folgenden Schritte aus:

  1. Stufenwechsel
  2. Änderungen übernehmen
  3. Push (Änderungen)

Alternativ können Sie Git Bash verwenden, um Git über die Befehlszeile auszuführen.

Änderungen anzeigen, die der Git-Quellcodeverwaltung zugeschrieben wurden

Navigieren Sie zu Azure DevOps -Webseite, sofern Sie bereits angemeldet sind, und das Projekt SQLBookShopV3-Using-Working-Folder-with-Git ist aktiv.

Klicken Sie auf Repositorys auf der linken Navigationsleiste, um die gerade an die Git-Quellcodeverwaltung übertragenen Änderungen anzuzeigen.

Überprüfen Sie als Nächstes das Tabellenskript.

Aktien- und Preisspalten hinzufügen

Fügen Sie nun zwei weitere Spalten Aktien hinzu und Preis zum Buch Tabelle mithilfe des folgenden Skripts.

CREATE TABLE SQLBookShopV3.dbo.Book (
  BookId INT IDENTITY
 ,Title VARCHAR(100) NULL
 ,Author VARCHAR(50) NULL
 ,Price DECIMAL(8, 2) NULL
 ,Stock SMALLINT NULL
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
) ON [PRIMARY]
GO

Die Tabelle sollte wie folgt aussehen.

Änderungen in den Arbeitsordner übertragen

Speichern Sie die neueste Definition der Buchtabelle, die jetzt zwei zusätzliche Spalten enthält, in der Quellcodeverwaltung des Arbeitsordners, wie unten gezeigt.

Suchen Sie den Arbeitsordner mit Windows Explorer und öffnen Sie die Datei dbo.table.sql im Editor, um den Code anzuzeigen.

Der Arbeitsordner enthält die aktuellste Definition der Tabelle und enthält keine Informationen über die erste Form der Tabelle.

Wie bereits erwähnt, ist dies die Einschränkung von Working Folder, dass wir nur die neueste Version der Datenbank sehen können, die von neueren Versionen überschrieben wird, wodurch kein Raum bleibt, um den (Datenbank-Änderungs-) Verlauf zurückzuverfolgen.

Push-Änderungen an die Git-Quellcodeverwaltung (Aktien- und Preisspalten)

Im nächsten Schritt werden wir die neu hinzugefügten Spalten der Tabelle wie unten gezeigt in das Git Remote Repository verschieben.

Verfolgen Sie Datenbankänderungen mit der Git-Quellcodeverwaltung

Bisher haben wir zwei Hauptdatenbankänderungen in der folgenden Reihenfolge vorgenommen:

  1. Das Buch Tabelle wurde mit den Spalten BookId, Title und Author erstellt
  2. Die Spalten Preis und Bestand wurden zum Buch hinzugefügt Tabelle

Es gibt keine Möglichkeit, die erste Änderung zu sehen, wenn jede Buchtabelle ursprünglich mit dem Arbeitsordner erstellt wurde.

Es ist jedoch möglich, den gesamten Verlauf der Datenbankänderungen mit Git anzuzeigen, solange wir diese Änderungen in das Git Remote Repository übertragen haben.

Klicken Sie in Azure DevOps bitte auf Pushes auf der linken Navigationsleiste, um die historischen Änderungen der Datenbank anzuzeigen.

Navigieren Sie zu Commits um die Reihenfolge der Datenbankänderungen in Form von Commits anzuzeigen.

Klicken Sie auf das erste Commit a99df4b5 um die erste Definition des Buches zu sehen Tabelle.

Gehen Sie zurück und klicken Sie auf den nächsten Commit 6f863f0a um die nächste(n) Datenbankänderung(en) zu sehen.

Herzliche Glückwünsche! Wir haben die Datenbankänderungen mithilfe des Arbeitsordners mit einer sekundären Quellcodeverwaltung (Git) erfolgreich nachverfolgt.

Wir können jetzt auf Wunsch zur ersten Version der Tabelle zurückkehren oder weitere Datenbankobjekte hinzufügen.

Dinge zu tun

Sie können Ihre Datenbankobjekte jetzt bequem nicht nur unter die Quellcodeverwaltung des Arbeitsordners stellen, sondern auch alle Datenbankänderungen dort verfolgen, indem Sie den Datenbankverlauf verwalten.

  1. Bitte versuchen Sie, eine andere Datenbank zu erstellen, indem Sie das Buch verlinken Tabelle mit dem BookType Tabelle so, dass die BookTypeId Primärschlüssel des BookType Tabelle wird als BookTypeId übergeben Fremdschlüsselspalte im Buch Tabelle und verwenden Sie die Quellcodeverwaltung des Arbeitsordners, um Datenbankänderungen zu verfolgen.
  2. Bitte versuchen Sie, die Uhren zu erstellen Datenbank, wie im ersten Diagramm des Artikels zu sehen, und befolgen Sie die Schritte, indem Sie den Verlauf der Datenbankänderungen mithilfe von Working Folder with Git verwalten
  3. Bitte versuchen Sie, die im ersten Diagramm des Artikels erwähnten Änderungen rückgängig zu machen, wenn Dev2 versehentlich die Überwachung löscht Tabelle, die von Dev1 unter Verwendung des Arbeitsordners erstellt wurde, um Datenbankänderungen zu verfolgen.

Nützliches Tool:

dbForge Source Control – leistungsstarkes SSMS-Add-In zum Verwalten von SQL Server-Datenbankänderungen in der Quellcodeverwaltung.