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

Verwenden des Arbeitsordners für die Quellcodeverwaltungsdatenbank

Dieser Artikel ist eine exemplarische Vorgehensweise zur Verwendung der Arbeitsordneroption der Quellcodeverwaltung zum Verwalten von SQL Server-Datenbanken.

In diesem Artikel unterstreiche ich auch einige der Vorteile und Einschränkungen der Verwendung eines Arbeitsordners im Vergleich zu anderen verfügbaren Optionen zur Verwendung mit der Quellcodeverwaltung.

Lassen Sie uns einige Schlüsselkonzepte besprechen, bevor wir uns mit den technischen Details dieses Artikels befassen.

Schlüsselkonzepte

Was ist Quellcodeverwaltung

Quellcodeverwaltung ist ein System oder (Teil der bewährten Software-Praxis), das alle Änderungen im Code verfolgt, die von Entwicklern vorgenommen werden.

Warum Quellcodeverwaltung erforderlich ist

Der von den Entwicklern geschriebene Anwendungscode muss von Zeit zu Zeit so gespeichert werden, dass alle Änderungen, die von einem beliebigen Entwickler vorgenommen wurden, nicht nur zurückverfolgt, sondern bei Bedarf auch rückgängig gemacht werden können.

Aus diesem Grund wird der Anwendungscode unter Quellcodeverwaltung gestellt, um sicherzustellen, dass der Verlauf aller Änderungen zusammen mit Kommentaren gut aufbewahrt wird, und es gibt viele weitere Vorteile der Verwendung der Quellcodeverwaltung, die den Rahmen dieses Artikels sprengen würden.

Quellcodeverwaltung vs. Versionskontrolle

Es gibt keinen Unterschied zwischen Quellcodeverwaltung und Versionskontrolle und meistens werden diese beiden Begriffe frei austauschbar verwendet.

Stellen wir Datenbanken unter Quellcodeverwaltung

Ebenso wie Anwendungscode müssen auch die Datenbankobjekte wie Tabellen, Ansichten, gespeicherte Prozeduren usw. versioniert werden. Die Methode, Datenbankobjekte unter Quellcodeverwaltung zu stellen, unterscheidet sich jedoch geringfügig und in einigen Fällen vollständig von der Methode, Anwendungscode unter Quellcodeverwaltung zu stellen.

Beispiel einer Datenbank zur Versionskontrolle

Angenommen, Sie erstellen gemäß den Geschäftsanforderungen eine Beispieldatenbank mit dem Namen „Autos“.

Dann erstellen Sie eine Tabelle namens „Car“ mit der CarId und CarName Spalten, um eine andere Anforderung zu erfüllen.

In Ihrer Abwesenheit wird einem anderen Entwickler die Aufgabe zugewiesen, den CarType hinzuzufügen Spalte zur Tabelle „Auto“.

Er beschließt, den CarName zu entfernen Spalte, die Sie für nicht erforderlich halten, und ersetzen Sie sie durch CarType Spalte.

Sie kommen nach langer Zeit wieder und sind überrascht, dass Ihr CarName Spalte fehlt nicht nur, sondern wird auch durch CarType ersetzt Spalte.

Jetzt erinnern Sie sich nicht mehr an den ursprünglichen Datentyp und die Länge, die Sie für CarName gewählt haben es sei denn, Sie gehen alle Geschäftsanforderungen durch.

Warte eine Minute! Dieses Problem kann leicht gelöst werden, wenn Sie überhaupt in Betracht gezogen haben, die Quellcodeverwaltung für Ihre Datenbank zu verwenden. Dann können Sie leicht die erste Änderung sehen, die Sie vorgenommen haben, die die Spaltendefinition enthält, und dann die zweite Änderung, die von einem anderen Entwickler vorgenommen wurde.

Sie und der andere Entwickler sitzen also zusammen und gehen die historischen Änderungen durch, die an der Datenbank (dem Objekt) vorgenommen wurden, indem Sie die Quellcodeverwaltung verwenden, die jede einzelne Änderung verfolgt, die von einem beliebigen Entwickler an der Datenbank vorgenommen wurde.

Dies wird wie folgt dargestellt:

Wichtigste Verwendung der Quellcodeverwaltung

Einer der Hauptgründe für die Verwendung der Quellcodeverwaltung besteht darin, mehrere Versionen des Codes gleichzeitig verwalten zu können, indem die folgenden Zweige des Codes erstellt werden:

  1. Dev (Entwicklungszweig)
  2. Test (Testzweig)
  3. QA (QA-Zweig)
  4. Prod (Produktionszweig)

Die technischen Details zum Erstellen von Dev-, Test-, QA- und Production-Branches aus der Quellcodeverwaltung würden den Rahmen dieses Artikels sprengen.

Voraussetzungen

Dieser Artikel ist am besten für diejenigen Leser geeignet, die die folgenden Anforderungen erfüllen:

Grundkenntnisse von T-SQL

Sie müssen über grundlegende T-SQL-Kenntnisse verfügen, um Datenbankobjekte wie Tabellen, Ansichten und gespeicherte Prozeduren zu erstellen, abzufragen und zu ändern.

Datenbankentwicklungstools

Sie müssen SSMS (SQL Server Management Studio) oder dbForge Studio für SQL Server auf Ihrem Computer installiert haben, um Datenbanken und ihre Objekte zu erstellen und zu verwalten.

Verfügbarkeit von Datenquellen für Arbeitsordner

Obwohl jede Quellcodeverwaltung, die die Option Arbeitsordner anbietet, in Ordnung ist, wird empfohlen, dbForge Source Control zu verwenden, um alle Schritte der exemplarischen Vorgehensweise in diesem Artikel zu befolgen.

Arbeitsordner-Quellcodeverwaltung

Arbeitsordner mit eingeschränkter Funktionalität zur Versionskontrolle von Datenbankobjekten kann wie andere Versionskontrollsysteme wie TFS, Git usw. verwendet werden.

Ein Arbeitsordner enthält einfach SQL-Skriptdateien, die zum Erstellen und Verwalten von Datenbankobjekten verwendet werden.

Wann sollte der Arbeitsordner verwendet werden

Angenommen, Sie möchten eine Datenbank und die zugehörigen Objekte von Grund auf neu erstellen, sind sich aber noch nicht sicher, welche Quellcodeverwaltung Ihr Team letztendlich verwenden wird. Dann ist es besser, mit der Versionsverwaltungsoption für den Arbeitsordner zu beginnen.

Ein weiterer Grund könnte sein, dass Sie einfach den aktuellen Status der Datenbank speichern möchten und nicht daran interessiert sind, die historischen Änderungen zu verfolgen, dann ist der Arbeitsordner ein guter Kandidat für die Verwendung als Quellcodeverwaltung.

Einschränkung des Arbeitsordners

Der Arbeitsordner für Datenbankobjekte zur Versionskontrolle ist in Bezug auf die Aufbewahrung der neuesten Version der Datenbank und ihrer Objekte begrenzt, und es gibt keine Möglichkeit, die Änderungen zurückzuverfolgen oder rückgängig zu machen.

Sie müssen also vorsichtig sein, wenn Sie den Arbeitsordner als Quellcodeverwaltungsoption verwenden, da er Ihnen nicht alle Änderungen anzeigen kann, die von Zeit zu Zeit an der Datenbank und ihren Objekten vorgenommen wurden.

Walkthrough:Verknüpfung der Datenbank mit dem Arbeitsordner

Lassen Sie uns die Schritte durchgehen, um Ihre Datenbank mithilfe der Quellcodeverwaltung mit einem Arbeitsordner zu verknüpfen.

Anforderungen zum Hinzufügen von Buch und Buchtyp

Sie haben interne Anforderungen erhalten, um eine Testdatenbank mit dem Namen „SQLBookShopV2“ zu erstellen, die die folgenden zwei Tabellen enthält:

  1. Buchen
  2. Buchtyp

Die Datenbank erfordert zu diesem Zeitpunkt nicht unbedingt eine Quellcodeverwaltung, und es ist nicht wichtig, alle vorgenommenen Änderungen zu verfolgen.

Überprüfen Sie die Anforderungen

Es ist oft empfehlenswert, die Anforderungen zu überprüfen, bevor Sie einen Arbeitsordner verwenden. Ein Arbeitsordner ist am besten geeignet, wenn Sie aufgefordert werden, eine Datenbank mit den folgenden Anforderungen zu erstellen:

  1. Testdatenbank oder Datenbankprototyp erforderlich
  2. Der Verlauf der Datenbankänderung(en) ist nicht obligatorisch
  3. Die Entscheidung, welche Quellcodeverwaltung letztlich zum Einsatz kommt, steht noch nicht fest

Arbeitsordner einrichten

Der erste Schritt besteht darin, einen Ordner zu reservieren, in dem sich Ihre Testdatenbankskripte befinden, nachdem Sie mit dem Einchecken Ihres Datenbankcodes in den Arbeitsordner begonnen haben.

Erstellen Sie einen neuen Ordner namens „SQLBookShopV2 Scripts“ unter C Drive.

Setup der SQLBookShopV2-Beispieldatenbank

Öffnen Sie dbForge Studio for SQL Server und klicken Sie im Datenbankmenü auf „Neue Datenbank“:

Geben Sie „SQLBookShopV2“ als Namen der Datenbank ein und klicken Sie unten im Fenster auf die Schaltfläche „Änderungen übernehmen“:

Datenbank mit Arbeitsordner verknüpfen

Es ist besser, die Datenbank direkt nach dem Erstellen mit der Quellcodeverwaltung zu verknüpfen.

Klicken Sie mit der rechten Maustaste auf die Datenbank (SQLBookShopV2) und wählen Sie Quellcodeverwaltung à Link Database to Source Control menu item:

Suchen Sie den zuvor erstellten Arbeitsordner, um ihn mit der Datenbank zu verknüpfen:

Sie können Ihr gewünschtes Datenbankentwicklungsmodell auswählen. Wir wählen das gemeinsame Datenbankentwicklungsmodell:

Überprüfen Sie das winzige Quellcodeverwaltungssymbol neben der Datenbank, das bestätigt, dass die Datenbank erfolgreich mit der Quellcodeverwaltung des Arbeitsordners verknüpft wurde:

Buchtabelle erstellen

Klicken Sie mit der rechten Maustaste auf Tabellen und klicken Sie dann auf Neue Tabelle und erstellen Sie eine Buchtabelle mit dem folgenden Code und wenden Sie die Änderungen an:

CREATE TABLE SQLBookShopV2.dbo.Book (
  BookId INT IDENTITY
 ,BookTitle VARCHAR(50) NOT NULL
 ,Notes VARCHAR(200)
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
)
GO

Datenbankcodeänderungen übernehmen

Da wir eine neue Tabelle in der Datenbank erstellt haben, müssen diese lokalen Änderungen von der Quellcodeverwaltung übernommen werden, um gespeichert zu werden.

Öffnen Sie den Source Control Manager (der die letzten zu speichernden Änderungen anzeigt), indem Sie mit der rechten Maustaste auf die Datenbank klicken und dann auf Quelle klicken à Versionsverwaltungs-Manager anzeigen

Klicken Sie auf Übernehmen um in die Quellcodeverwaltung des Arbeitsordners einzuchecken:

Überprüfung des Arbeitsordners

Gehen Sie zu Ihrem Arbeitsordner und sehen Sie sich das Tabellenobjekt an, das dort als Ergebnis des letzten Commit gespeichert wurde:

BookType-Tabelle erstellen

Erstellen Sie eine weitere Tabelle BookType mit dem folgenden Code:

CREATE TABLE SQLBookShopV2.dbo.BooKType (
  BookTypeId INT IDENTITY
 ,Name VARCHAR(50) NULL
 ,Detail VARCHAR(200) NULL
 ,CONSTRAINT PK_BooKType_BookTypeId PRIMARY KEY CLUSTERED (BookTypeId)
)
GO

Tabelle zur Quellcodeverwaltung hinzufügen

Fügen Sie die neu erstellte Tabelle der Quellcodeverwaltung hinzu, indem Sie dieselbe Methode wie zuvor erwähnt verwenden, und überprüfen Sie dann den Arbeitsordner, um festzustellen, ob beide Tabellen vorhanden sind:

Herzliche Glückwünsche! Sie haben Ihre Datenbank erfolgreich mit der Quellcodeverwaltung des Arbeitsordners verknüpft.

Vorsichtsmaßnahmen für Arbeitsordner

Bitte denken Sie an einen Arbeitsordner in seiner reinen Form, da eine Quellcodeverwaltung genau wie ein gewöhnlicher Windows-Ordner ist, und wenn er extern modifiziert wird, kann er sich nicht mehr an seinen letzten Zustand erinnern.

Wenn wir beispielsweise den Book.sql-Code aus dem Arbeitsordner löschen und dann mit dem Quellcodeverwaltungs-Manager nach Änderungen suchen, müssen wir den Book-Tabellencode erneut in den Arbeitsordner einfügen.

Die Verantwortung für die Sicherung des Arbeitsordners liegt eher bei den Entwicklern als beim Quellcode (in seiner ursprünglichen Form), es sei denn, Sie befolgen strikt die Problemumgehung, die sich als erfolgreich erwiesen hat.

Dinge zu tun

Sie können Ihre Datenbankobjekte jetzt ganz einfach mit der Versionsverwaltungsoption für Arbeitsordner ablegen:

  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 nach Verwendung der Quellcodeverwaltung des Arbeitsordners.
  2. Bitte versuchen Sie, eine gespeicherte Prozedur namens AddBook zu erstellen um ein neues Buch zum Buch hinzuzufügen Tabelle, nachdem Sie Ihre Datenbank mit der Quellcodeverwaltung des Arbeitsordners verknüpft haben.
  3. Bitte versuchen Sie, eine Datenbankansicht Bücher zu erstellen , um die Liste aller Bücher mit ihren Typen anzuzeigen und alle Änderungen in der Quellcodeverwaltung des Arbeitsordners zu überprüfen.

Weiterführende Literatur:

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

Nützliches Tool:

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