publishing database changes sql server using microsoft tfs
In diesem Lernprogramm wird ausführlich erläutert, wie Sie ein SQL Server-Datenbankprojekt in TFS erstellen und ein Projekt für das Microsoft TFS-Repository freigeben:
In der DevOps-Reihe veröffentlichten Tutorials @ DevOps Tutorial Wir haben uns mit Continuous Integration und Continuous Delivery Automation für Java und .Net für On-Premise- und Cloud-Bereitstellungen der Anwendungen befasst.
Zu den von uns behandelten Tools gehören Microsoft VSTS mit Azure, Amazon Web Services und Ansible. Die Serie konzentrierte sich auf Änderungen des Quellcodes und darauf, wie effektiv er schnell in verschiedenen Umgebungen bereitgestellt wurde. Wenn wir jedoch über eine dreistufige Anwendungsentwicklung sprechen, wäre auch die Datenbank beteiligt, und wir müssen dieselben Techniken auf datenbankbezogene Änderungen anwenden.
Was du lernen wirst:
Microsoft Team Foundation Server 2015 und SQL Server 2014
Dieser Artikel konzentriert sich auf Bereiche wie die Verwendung von Visual Studio 2015 für die Entwicklung, die Erstellung von SQL Server-Datenbankprojekten mit Datenbankdefinition, die Erstellung einer Builddefinition zum Veröffentlichen der Änderungen an SQL Server usw. unter Verwendung von Microsoft Team Foundation Server 2015 und SQL Server 2014.
Schließlich müssen wir auch Datenbankskripte und deren Änderungen effektiv verwalten.
Erstellen eines SQL Server-Datenbankprojekts in TFS
Beginnen wir mit der Erstellung des Datenbankprojekts in Visual Studio. Starten Sie Visual Studio 2015 und erstellen Sie das Datenbankprojekt wie in der Abbildung unten gezeigt mit Datei-> Neu -> Projekt . Geben Sie einen Namen ein und klicken Sie auf OK.
Fügen Sie einen neuen Ordner hinzu und nennen Sie ihn Tabellen. Dieser Ordner enthält alle unsere SQL-Dateien. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Hinzufügen-> Neuer Ordner.
Der erstellte Ordner wird im Projektmappen-Explorer angezeigt. Fügen Sie hier eine neue Tabelle hinzu und definieren Sie die entsprechenden Spalten.
Klicken Sie mit der rechten Maustaste auf den Ordner der Tabelle und wählen Sie Add-> Tabelle wie im folgenden Bild gezeigt.
Eingeben Name wie Mitarbeiter mit ausgewählter Tabellenoption. Klicke auf Hinzufügen.
Fügen Sie einige Spalten hinzu, wie in der Entwurfsansicht gezeigt.
Falls bereits SQL-Dateien vorhanden sind, können diese auch importiert werden, indem Sie mit der rechten Maustaste auf das Datenbankprojekt klicken und auswählen Skript importieren (* .SQL)
Ähnlich, Hinzufügen -> Gespeicherte Prozedur in einen Ordner wie unten gezeigt.
Die endgültige Struktur, wie sie im Datenbankprojekt gezeigt wird, sieht wie im folgenden Bild aus.
Normalerweise nehmen wir für jede Version und als Entwickler Änderungen an den Tabellen oder gespeicherten Prozeduren vor, und Visual Studio stellt sicher, dass die Skripts ordnungsgemäß geändert werden, um sicherzustellen, dass die Datenbankänderungen mit den Skripten synchronisiert sind. Wir müssen diese Änderungen veröffentlichen oder die Änderungen kontinuierlich automatisiert in der SQL Server-Datenbank bereitstellen.
Veröffentlichen Sie dazu die Profildatei, die eine XML-Datei ist und alle Informationen wie Datenbankname, Verbindungszeichenfolge usw. enthält, die für die Bereitstellung auf dem SQL Server erforderlich sind.
Sobald die XML-Datei verfügbar ist, verwenden wir die Microsoft TFS-Builddefinition, um die Änderungen automatisch in der SQL Server-Datenbank zu veröffentlichen, entweder basierend auf jedem Einchecken oder nach einem Zeitplan.
In der SQL Server-Installation haben wir ein leeres erstellt Datenbank, beispielsweise, Mitarbeiter, den wir für Publish verwenden werden.
Erstellen Sie nun die Veröffentlichungsprofildatei mit Visual Studio. Klicken Sie mit der rechten Maustaste auf das Datenbankprojekt und wählen Sie Veröffentlichen.
Bearbeiten und wählen Sie die Verbindung zur Mitarbeiterdatenbank in SQL Server aus.
Klicken Sie auf die Schaltfläche Profil speichern unter um das Profil im Projekt zu speichern. Sie können eine Datei mit dem Namen sehen Employee.publish.xml geschaffen. Sie können die Änderungen auch manuell bereitstellen, indem Sie auf die Schaltfläche Veröffentlichen klicken. Hier werden jedoch die zu veröffentlichenden Änderungen automatisiert.
Array von Objekten im Java-Beispielprogramm
Wähle aus Stornieren Option für jetzt, nachdem das Profil gespeichert wurde.
Öffnen Sie die Datei in einem XML-Editor und Sie können die Datenbank- und Verbindungszeichenfolgen sehen. Fügen Sie manuell einen Schlüssel für das Kennwort hinzu und geben Sie das Kennwort für die angegebene Benutzer-ID an. Dies wird für die Verbindung zur SQL Server-Datenbank benötigt.
Da auf das Kennwort leicht zugegriffen werden kann, werden wir in der Build-Definition mit dem Plugin 'Token ersetzen' sehen, wie Sie dasselbe maskieren können.
True Employee Employee.sql Data Source=l-0310;Persist Security Info=False;User ID=sa; Password=;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True 1
Stellen Sie außerdem sicher, dass Sie die richtige Version von SQL Server auswählen, die für dieses Datenbankprojekt verwendet werden soll. Andernfalls treten bei den veröffentlichten Daten Fehler auf. Klicken Sie mit der rechten Maustaste auf das Datenbankprojekt (Mitarbeiter) und wählen Sie Eigenschaften . Wählen Sie die entsprechende Version aus. In diesem Fall handelt es sich um die Version 2014. speichern (Strg + S) die Änderungen, sobald sie abgeschlossen sind.
Wählen Sie SQL Server 2014 als Zielplattform aus und speichern Sie die Lösung.
Um das Projekt in einer TFS-Build-Definition zu verwenden, müssen wir das Projekt für das TFS-Repository freigeben. Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie Lösung zur Quellcodeverwaltung hinzufügen. Gehe zum Team Explorer -> Ausstehende Änderungen und Einchecken die Lösung.
Das Projekt sollte jetzt in TFS verfügbar sein.
Erstellen Sie eine Build-Definition, um die Veröffentlichung zu automatisieren
Wir haben jetzt das Datenbankprojekt in TFS eingecheckt und jede Änderung, die der Entwickler an der Tabelle oder den gespeicherten Prozeduren vorgenommen hat, wird automatisch bei SQL Server veröffentlicht, ohne dass bei jedem Einchecken oder basierend auf einem Zeitplan ein manueller Eingriff mit Build Definition erforderlich ist .
Ändern Sie zunächst die Veröffentlichungs-XML-Datei, um ein Token für den Kennwortschlüssel hinzuzufügen, wie unten gezeigt. Checken Sie alle vorgenommenen Änderungen ein.
True Employee Employee.sql Data Source=l-0310;Persist Security Info=False;User ID=sa;Password=#{DBPWD}#;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True 1
Wechseln Sie in TFS zum Build-Hub und erstellen Sie eine leere Build-Definition.
Fügen Sie in der Build-Definition zunächst die hinzu Schritt Token ersetzen und konfigurieren Sie wie in der Abbildung unten gezeigt, da die Kennwortvariable maskiert werden muss. Falls Sie das Plugin für 'Token ersetzen' herunterladen müssen, können Sie es für Microsoft TFS 2015 von herunterladen und installieren GitHub-Token ersetzen
Gehen Sie zur Registerkarte 'Variablen' und fügen Sie die Variable wie in der XML-Veröffentlichungsdatei hinzu, d. H. DBPWD, mit dem Wert des Kennworts für zu Benutzeridentifikation. Klicke auf das sperren Symbol und aktivieren Sie das Kontrollkästchen für Zur Wartezeit zulassen. Speichern Sie die Build-Definition.
Fügen Sie als Nächstes einen Visual Studio Build-Schritt hinzu. Wähle aus Visual Studio-Lösung und geben Sie die MS Build Argumente wie im folgenden Bild gezeigt, um die Änderungen zu erstellen und zu veröffentlichen.
/ t: build / t: veröffentliche /p:SqlPublishProfilePath=Employee.publish.xml
Stellt den Build in eine Warteschlange oder löst ihn aus und sucht nach Änderungen, die in SQL Server veröffentlicht wurden. Für den Erstellungsprozess wird ein Agent benötigt, um auf dem Computer ausgeführt zu werden, auf dem SQL Server installiert ist.
Literatur-Empfehlungen zum Installieren und Konfigurieren von Agenten für Microsoft TFS 2015 @ Microsoft-TFS-2015
Öffnen Sie SQL Server 2014 Management Studio, klicken Sie mit der rechten Maustaste auf die Datenbank, führen Sie eine Abfrage in der Datenbank aus und suchen Sie nach den Änderungen, die nach dem ausgeführten Build veröffentlicht wurden.
Wie wir sehen können, werden die Tabellen und gespeicherten Prozeduren zum ersten Mal durch einen automatisierten Erstellungsprozess in TFS veröffentlicht. Um die kontinuierliche Integration und den automatisierten Veröffentlichungsprozess in der Datenbank zu veranschaulichen, nehmen Sie eine Änderung in der Tabelle vor und führen Sie den Build erneut aus.
In der Tabelle haben wir eine weitere Spalte hinzugefügt.
Stellen Sie den Build erneut in die Warteschlange und prüfen Sie, ob Änderungen erfolgreich veröffentlicht wurden oder nicht. Die Spalte Land wird jetzt zur Tabelle hinzugefügt. Siehe das Bild unten.
Wenn Sie die Datenbank, Tabellen usw. in Visual Studio selbst anzeigen möchten, gehen Sie zu Ansicht-> SQL Server-Objekt-Explorer Durchsuchen der Datenbank mit einer SQL Server-ähnlichen Hierarchie.
Fazit
Wir haben eine einfache, aber leistungsstarke Lösung gefunden, mit der Datenbankänderungen mithilfe von Microsoft TFS 2015 bei jedem Check-in oder basierend auf dem Zeitplan des Builds kontinuierlich in SQL Server veröffentlicht werden können. Alle Tabellen oder gespeicherten Prozeduren oder Ansichten werden basierend auf diesen Änderungen hinzugefügt oder aktualisiert, und Visual Studio erstellt oder ändert die SQL-Skripts entsprechend.
Kurz gesagt, das Verwalten großer Datenbanken und das Veröffentlichen der Änderungen ist mithilfe der Visual Studio-Datenbankprojekte und von Microsoft Team Foundation Server zum Kinderspiel geworden.
Literatur-Empfehlungen
- TFS-Lernprogramm: TFS zur Automatisierung von Build, Test und Bereitstellung für .NET-Projekte
- Verwendung von Microsoft TFS für JAVA-Projekte mit Eclipse in DevOps
- Agile Planung mit Microsoft Team Foundation Server (TFS)
- Entwicklung von Oracle-Datenbankanwendungen: Oracle SQL & PL / SQL
- Oracle Database Tutorial - Was ist Oracle Database?
- MySQL-Datenbank erstellen - So erstellen Sie eine Datenbank in MySQL
- MongoDB Tutorial zum Erstellen einer Datenbank
- Unterschied zwischen SQL und MySQL und SQL Server (mit Beispielen)