Frage

Mein Team prüft Werkzeuge und Prozesse für die Verwaltung von Refactoring Datenbank Migrationen / Datenbank wie von Martin Fowler, Pramod Sadalage, et. al. Wir interessieren uns für automatisierte, wiederholbare, prüfbare Prozesse, so sind wir nicht daran interessiert, Techniken wie manuell mit SQL jedes Mal, vergleichen wir bereitstellen. Wir sind zur Zeit CruiseControl.NET für kontinuierliche Integration verwendet wird.

Unsere Produktionsumgebung verfügt über mehr SQL Server 2000-Datenbankserver mit der Replikation zwischen ihnen. Unsere Wanderungen werden daher Änderungen an dem Schema sowohl auf dem Quell- und Zieldatenbankserver.

solche mit einem Werkzeug wie dbdeploy eine Migration ausführen zu können, es scheint, dass wir die Migration gegen einen der Server ausgeführt werden müssten, und wir würden die anderen Server als Verbindungsserver hinzufügen. Ein einziges Skript für den Hauptserver laufen konnte somit DDL ausführen gegen keines der verknüpften Server.

Meine Frage ist: würde dieser Ansatz eine bewährte Methode in Betracht gezogen werden, oder gibt es eine bessere Technik zum Aufbringen von Migrationen, die mehrere Datenbankserver berühren

War es hilfreich?

Lösung

Ich sehe nichts von Natur aus falsch mit diesem Ansatz ist jedoch, wenn es nach oben sicher sein, zu prüfen, Einstellung, was passiert, wenn einer des Verbindungsservers nicht verfügbar ist. Sie wollen nicht sein, alle anderen Server Rollback, wenn man nach unten passiert zu sein und Sie möchten die Änderungen wissen, wurden auf diesem Server nicht angewendet.

Natürlich ist das erste, was am wichtigsten Best Practice für jede Migration ist dafür, dass Sie eine solide Backup-Prozess an der richtigen Stelle, bevor Sie Änderungen beginnen zu migrieren.

Andere Tipps

Visual Studio 2008 (Team Edition, speziell GDR) kann automatisierte Bereitstellung von Schema behandelt gegen definierte Schema / Metadatendatei, die Sie auf Servern bereitstellen können. Dies könnte in Ihrem Build / Deploy-Prozess einbezogen werden. Aber ich denke, es immer noch ein Problem über Replikation und Schemaänderungen ist - es gibt kein Paket, das versteht / ist sich dessen bewusst Ihrer Replikationskonfiguration.

Zum Beispiel verwenden wir benutzerdefinierte Replikationsverfahren auf dem Teilnehmer und obwohl Schemaänderungen aus dem Verlag propagieren wir haben manchmal manuell je Skriptänderungen auf jede kundenspezifische Replikation wir an der richtigen Stelle. Wenn Sie keine benutzerdefinierte Replikation Procs verwenden, würde ich sagen, dass dies der Weg ist zu gehen.

Sie können eine Kombination von Chinchillin und Wizardby . Chinchillin Agenten auf DB-Server installieren und haben es Wizardby Migrationsskripts während Ihres Bereitstellungsprozess ausführen

Diese Integration ist in Arbeit, aber:)

Hier bei Red Gate wir haben jetzt eine wiederholbare Migrationen Lösung, die SQL Compare und SQL Source Control verwendet. Die SQL-Vergleichen-Befehlszeile kann daher verwendet wird einen kontinuierlichen Integrationsprozess zu unterstützen.

http://www.red-gate.com/MessageBoard /viewtopic.php?t=14107

Es ist derzeit eine frühe Zugang zu bauen, so dass wir daran interessiert, so viel Feedback wie möglich zu erhalten.

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