Frage

Ich arbeite an einem Open-Source-Projekt, das SQL Server 2005 als Datenspeicher verwendet.Wir benötigen ein DB-Vergleichstool, um Diff-Skripte zu generieren und eine DB von einer Version auf eine andere aktualisieren zu können.

Gibt es ein Open-Source- oder kostenloses SQL Server DB-Diff-Tool, das ein Konvertierungsskript generiert?

War es hilfreich?

Lösung

Ich denke, dass Open DBiff gute Arbeit leistet.Es ist einfach und ich arbeite mit SQL Server 2005/2008.

Generieren Sie aber nur das Änderungsskript.Nicht mehr und nicht weniger.

Andere Tipps

Auf CodePlex ist mir gestern aufgefallen DbDiff (http://www.codeplex.com/OpenDBiff), die Sie ausprobieren könnten.Unterstützt SQL2005 und 2008, ich habe es nicht ausprobiert.

Ich würde empfehlen, etwas Geld auszugeben und zu kaufen SQL-Vergleich von Red Gate Tool, das hervorragende Arbeit leistet und sogar Datenbanken mit Visual Studio-Datenbankprojekten vergleichen kann, um Upgrade-Skripte zu generieren.Es ist schnell und einfach zu bedienen und funktioniert gut.Auch die Upgrade-Skripte sind von ordentlicher Qualität.

Es ist nicht so teuer.Wahrscheinlich günstiger als Ihre Zeit.Denken Sie einfach darüber nach, wie hoch Ihr Stundensatz ist und wie viele Stunden es dauern könnte, ein Open-Source-Tool zu untersuchen und zum Laufen zu bringen (und wie viele Stunden Sie bereits aufgewendet haben), und multiplizieren Sie diese dann miteinander.So viel kostet Sie ein „kostenloses“ Tool wirklich, oft deutlich mehr als ein kommerzielles Tool.

Es ist nicht Open Source, aber kostenlos (wie bei Bier): Sql Effects Accord (auch bekannt als Clarity) Community Edition

AdeptSQL Diff und DataDiff sind wunderbare Produkte, viel billiger als die von RedGate und eine viel einfachere Benutzeroberfläche, und ich bin noch nie auf ein Szenario gestoßen, mit dem sie nicht umgehen können.

Aloha

Vielleicht möchten Sie es versuchen SqlDbDiff.Es kann Änderungsskripte generieren.Die kostenlose Edition leistet gute Arbeit.

Hat jemand xSQL Bundle (xSQL Data Compare und xSQL Object Compare) ausprobiert?Unser Ort verwendet nur DB-Diffs, keine Synchronisierungen, daher kann ich nichts über die Synchronisierung sagen, aber die Diffs und Berichte sind nicht schlecht.

Außerdem hat OpenDBDiff ein Spin-off, ich bin mir nicht sicher, welches besser ist - http://code.google.com/p/sql-dbdiff/

Weiß jemand, ob eines der hier erwähnten kostenlosen/Open-Source-DB-Diff-Tools eine skriptfähige/Befehlszeilenschnittstelle zur Automatisierung der Diffs und Synchronisierung bietet?

Ich habe mir xSQL-Tools angesehen. Sie bieten Befehlszeilenzugriff, aber leider keinen skriptfähigen Befehl zum Exportieren von Diff-Ergebnissen in eine (Berichts-)Datei.

Obwohl es nicht genau das ist, was Sie wollen, habe ich Folgendes für Postgres gefunden:

http://mbk.projects.postgresql.org/

Es wird kein anzuwendender Diff generiert, sondern Sie können vielmehr einen vollständigen Dump der neuen Version der Tabelle mit der vorherigen Version zusammenführen.

Hmm, keine, die ich kenne.Sie können die Definitionen jederzeit als SQL abrufen und dann ein Diff-Tool darauf ausführen, aber das ist etwas umständlich.

Die wahrscheinlich beste Lösung hierfür ist die Verwendung einer Art „Migrations“-Tool, mit dem Sie Ihre Datenbankdefinitionen zusammen mit Ihrem Code behalten und sie versionieren usw. können.

Aktualisieren

Auf Sourceforge habe ich es gefunden Whiz SQL-Strukturvergleich mit dieser Beschreibung:Whiz ist ein Datenbank-Diff-Dienstprogramm, das nützlich ist, um Unterschiede zwischen zwei MS-SQL Server-Datenbanken zu finden.Es ist auch in der Lage, SQL-Skripte zu generieren, um die Änderungen von einer Datenbank auf eine andere Datenbank zu aktualisieren.

Bisher ist es mir jedoch nicht gelungen, es zum Laufen zu bringen ...

Wir haben sowohl SQL Delta als auch SQL Compare.Jeder hat Stärken, aber jeder hat auch Schwächen, die ihn ziemlich schmerzhaft machen.

SQL Delta wird bei seinem Vergleich einige Auslöser übersehen und Aktionen ausführen, die nicht in der Aktionsliste enthalten sind. Manchmal werden auch Aktionen ausgeführt, die Sie nicht wollten.Das wurde mit ziemlichem Zeitaufwand entdeckt.

SQL Compare fängt die Trigger ab, sie sind jedoch in die Tabellenlisten eingebettet.Bei einer großen Datenbank bedeutet das, jede Tabelle durchzugehen und auszusortieren.Etwas, das das Tool für uns hätte isolieren sollen.Wieder ein ziemlicher Zeitaufwand.

Es ist etwas spät, aber ich habe gerade ein wirklich einfaches Projekt zu Code Plex veröffentlicht:

http://dbcompare.codeplex.com

Geben Sie zwei Verbindungszeichenfolgen ein (oder erstellen Sie sie), und alle Tabellen, Ansichten und gespeicherten Prozeduren werden verglichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top