341 Stimmen

Wie führt man Versionskontrolle für eine SQL Server-Datenbank durch?

Ich möchte meine Datenbanken unter Versionskontrolle halten.

Ich möchte immer zumindest einige Daten darin haben (wie alumb erwähnt: Benutzertypen und Administratoren). Oft möchte ich auch eine große Sammlung generierter Testdaten für Leistungsmessungen haben.

Wie kann ich Versionskontrolle auf meine Datenbank anwenden?

6voto

Rolf Wessels Punkte 770

Ich stimme der Antwort von ESV zu und genau aus diesem Grund habe ich vor einiger Zeit ein kleines Projekt gestartet, um die Datenbankaktualisierungen in einer sehr einfachen Datei zu pflegen, die dann zusammen mit dem Quellcode gepflegt werden kann. Dies ermöglicht einfache Updates für Entwickler sowie UAT und Produktion. Das Tool funktioniert mit SQL Server und MySQL.

Einige Projektmerkmale:

  • Ermöglicht Änderungen am Schema
  • Ermöglicht die Population von Wertebäumen
  • Ermöglicht separate Testdateneinfügungen z.B. für UAT
  • Bietet die Möglichkeit zum Rollback (nicht automatisiert)
  • Unterstützt SQL Server und MySQL
  • Verfügt über die Möglichkeit, Ihre vorhandene Datenbank mit einem einfachen Befehl in die Versionskontrolle zu importieren (nur SQL Server ... arbeite noch an MySQL)

Bitte schauen Sie sich den Code für weitere Informationen an.

6voto

Es ist eine sehr alte Frage, dennoch versuchen viele Leute, dies auch heute noch zu lösen. Alles, was sie tun müssen, ist, sich über Visual Studio-Datenbankprojekte zu informieren. Ohne diese wirkt jede Datenbankentwicklung sehr schwach. Von der Code-Organisation über die Bereitstellung bis zur Versionierung vereinfacht es alles.

0 Stimmen

Azure Data Studio hat auch Datenbankprojekte.

6voto

engtech Punkte 2761

Die typische Lösung besteht darin, die Datenbank bei Bedarf zu dumpen und diese Dateien zu sichern.

Je nach Entwicklungsumgebung gibt es möglicherweise Open-Source-Plugins. Das Schreiben Ihres eigenen Codes, um dies zu tun, ist normalerweise ziemlich trivial.

Hinweis: Möglicherweise möchten Sie das Datenbankdump sichern, anstatt es in der Versionskontrolle zu platzieren. Die Dateien können schnell sehr groß werden in der Versionskontrolle und Ihr gesamtes Quellkontrollsystem verlangsamen (Ich erinnere mich gerade an eine CVS-Horrorgeschichte).

5voto

Remus Rusanu Punkte 280155

Ich verwende auch eine Version, die in der Datenbank über die erweiterten Datenbankeigenschaften-Familie von Verfahren gespeichert ist. Meine Anwendung verfügt über Skripte für jeden Versionschritt (z.B. Wechsel von 1.1 auf 1.2). Bei der Bereitstellung sieht sie sich die aktuelle Version an und führt dann die Skripte nacheinander aus, bis sie die letzte App-Version erreicht. Es gibt kein Skript, das die direkte 'End' -Version hat, selbst bei einer Bereitstellung auf einer sauberen Datenbank erfolgt die Bereitstellung über eine Reihe von Upgrade-Schritten.

Was ich jetzt noch hinzufügen möchte, ist, dass ich vor zwei Tagen eine Präsentation auf dem MS-Campus über die neue und kommende Version der VS DB Edition gesehen habe. Die Präsentation konzentrierte sich speziell auf dieses Thema und ich war völlig begeistert. Sie sollten es sich unbedingt anschauen, die neuen Funktionen konzentrieren sich darauf, die Schema-Definition in T-SQL-Skripten (CREATEs) zu halten, einen Laufzeit-Delta-Engine zum Vergleich des Bereitstellungsschemas mit dem definierten Schema und das Ausführen der Delta-ALTERs und die Integration mit der Source-Code-Integration, einschließlich MSBUILD-Continuous Integration für automatisierte Build-Drops. Der Drop wird einen neuen Dateityp enthalten, die .dbschema-Dateien, die zum Bereitstellungsort gebracht werden können, und ein Befehlszeilentool kann die tatsächlichen 'Deltas' durchführen und die Bereitstellung ausführen. Ich habe einen Blogeintrag zu diesem Thema mit Links zu den VSDE-Downloads, Sie sollten sie sich ansehen: http://rusanu.com/2009/05/15/version-control-and-your-database/

5voto

Dave Jackson Punkte 77

Vor einiger Zeit fand ich ein VB Basismodul, das DMO- und VSS-Objekte verwendet, um eine vollständige db skriptgesteuert zu VSS zu bringen. Ich habe es in ein VB Skript umgewandelt und hier veröffentlicht hier. Sie können ganz einfach die VSS-Aufrufe herausnehmen und die DMO-Sachen verwenden, um alle Skripte zu generieren und dann SVN aus der gleichen Batchdatei aufzurufen, die das VBScript aufruft, um sie einzuchecken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X