+1 für alle, die die RedGate-Tools empfohlen haben, mit einer zusätzlichen Empfehlung und einem Vorbehalt.
SqlCompare hat auch eine ordentlich dokumentierte API: So können Sie beispielsweise eine Konsolenanwendung schreiben, die Ihren Quellcode-Ordner mit einem CI-Integrationstestdatenbank synchronisiert, damit beim Einchecken Änderungen am Schema automatisch zusammen mit der entsprechenden Anwendungscodänderung bereitgestellt werden. Dies hilft dabei, die Lücke zu Entwicklern zu schließen, die vergessen Änderungen an ihrer lokalen Datenbank auf eine gemeinsame Entwicklungsdatenbank hochzuladen (ungefähr die Hälfte von uns, denke ich :) ).
Ein Vorbehalt ist, dass die RedGate-Tools so reibungslos sind, dass es leicht ist, die SQL-Realitäten, die der Abstraktion zugrunde liegen, zu vergessen. Wenn Sie beispielsweise alle Spalten in einer Tabelle umbenennen, hat SqlCompare keine Möglichkeit, die alten Spalten den neuen Spalten zuzuordnen, und es werden alle Daten in der Tabelle gelöscht. Es wird Warnungen generieren, aber ich habe Leute darüber hinwegklicken sehen. Es gibt hier einen allgemeinen Punkt, den ich für erwähnenswert halte, dass Sie die Versionsverwaltung und Aktualisierung von Datenbanken nur bis zu einem gewissen Grad automatisieren können - die Abstraktionen sind sehr undicht.