Versionskontrolle der SQL Server-Datenbank

Ich suche nach Add-Ons/Tools zur Open-Source-Datenbankversionskontrolle für SQL Server, die mit Git verknüpft werden können.

Ich habe GitSQL und die Red-Gate-SQL-Quellcodeverwaltung ausprobiert (keine Open Source). Bei gitSQL sehe ich ein Problem, dass beim Versuch, ein Objekt zu exportieren, anscheinend auch Abhängigkeiten exportiert werden.

Ich hätte gerne einige Empfehlungen für gute Tools zur Versionskontrolle von SQL Server.

Ich verwende SQL Server Management Studio 2014.

Antworten (1)

Geben Sie hier die Bildbeschreibung ein

Nur-Text-Dateien in Git/Mercurial

Verwenden Sie die Versionskontrolle Ihres Quellcodes wie Git , wie Sie erwähnt haben, oder Mercurial .

Verfolgen Sie die Erstellung, Definition und Entwicklung von Änderungen als SQL-Skripts. Dies sind reine Textdateien und können zusammen mit Ihrem App-Projekt oder in einem separaten eigenen Projekt aufbewahrt werden.

Da es sich nur um Textdateien handelt, benötigen Sie keine speziellen Add-Ons oder Tools , um mit Git zu verknüpfen.

Möglicherweise möchten Sie ein Datenbankmigrationstool verwenden, um die Aufgabe der Ausführung jedes dieser Skripts in einer bestimmten Reihenfolge nach Bedarf zu verwalten und zu automatisieren. Sie führen eine Migration durch, wenn Sie eine Datenbank neu erstellen oder eine bereits verwendete Datenbank aktualisieren.

Weg fliegen

Das Flyway- Projekt ist ein Datenbankmigrationstool. Jeder Schritt, den Sie bei der Entwicklung Ihrer Datenbankstruktur unternehmen, wird als SQL-Skript aufgezeichnet, das von Flyway verwaltet wird. Wenn Flyway auf eine Instanz Ihrer Datenbank stößt, die noch nicht auf den neuesten Stand gebracht wurde, führt es die entsprechenden SQL-Skripts aus.

Sie können diese SQL-Skripte zusammen mit Ihrem Quellcode aufbewahren, auch als Teil Ihres Versionskontrollsystems. Oder Sie können diese Skripts außerhalb Ihres Projekts halten und dann Flyway zur Laufzeit darauf verweisen.

Optional können Sie Java-Klassen zusätzlich zu den SQL-Skripten anwenden, um Änderungen an Ihrer Datenbank vorzunehmen, für komplizierte Situationen, in denen SQL nicht ausreicht.

Flyway basiert auf Java, ist aber auch für Nicht-Java-Entwickler nützlich, da Befehlszeilen-Utility-Wrapper die aufrufenden Java-Klassen umgeben. Sie können Flyway also von einer Konsole, einem Shell-Skript oder von Ihrem Build-/Integrationsserver aus ausführen.

Flyway ist quelloffen, kostenlos und wird immer beliebter.

Unterstützt Microsoft SQL Server und ein paar Dutzend andere wie Postgres, H2, DB2 und so weiter.

Sehr hilfreich zum Testen, da Sie eine neue, leere Datenbank erstellen und Flyway diese Datenbank dann an jeden gewünschten Punkt in Ihrer Entwicklungsgeschichte bringen können.

Liquibase

Liquibase ist Flyway in seinem Zweck ziemlich ähnlich, aber Ihre Migrationen werden eher von XML-Skripten als von SQL-Skripten gesteuert.

Sie sollten Liquibase berücksichtigen und vergleichen, während Sie Flyway in Betracht ziehen. Sie sind beide starke erfolgreiche Werkzeuge.

vielen Dank für Ihren Kommentar. Ich suche nach Tools zur Versionskontrolle, nicht nach Migrationstools. Flyway und Liquibase sind Migrationstools. Können Sie uns bitte irgendwelche Open-Source-Tools zur Versionskontrolle für SQL Server empfehlen?
@bhuvana Sie fügen die von Flyway verwalteten SQL-Skripts in ein normales Versionskontrollsystem wie Mercurial oder Git ein. Jetzt haben Sie einen vollständigen Verlauf der Entwicklung Ihrer Datenbankstruktur. Was könnte man sonst noch unter einem „Versionskontrolltool für SQL Server“ verstehen? Bearbeiten Sie Ihre Frage, um genau zu erklären, was Sie brauchen.