Zusammenführen von Datenbankschemas
Nach Ausführung eines Schemavergleichs zwischen zwei Datenbankschemas (dem "linken" und dem "rechten") können die Tabellenunterschiede zwischen den beiden Datenbanken synchronisiert (zusammengeführt) werden. Da sich dieser Vorgang auf die Struktur der Datenbank auswirkt, wird er nicht direkt angewendet. DiffDog generiert stattdessen ein Merge Script, das Änderungen entweder von der "linken" Datenbank in die "rechte" übertragen kann oder umgekehrt von der "rechten" in die "linke".
Anmerkung: | Mit dem Merge Script werden nur Unterschiede synchronisiert, die sich aus dem Strukturvergleich von Tabellen ergeben (dazu gehören Änderungen an Spalten, Schlüsseln oder Constraints). Eine Zusammenführung von Unterschieden zwischen Objekttypen (wie gespeicherten Prozeduren, Funktionen und Ansichten) wird nicht unterstützt. |
Nachdem das Merge Script generiert wurde, können sie es entweder direkt in DiffDog ausführen , es mit DatabaseSpy für die Ausführung öffnen oder für die spätere Ausführung in einer Datei speichern.
Bevor Sie das Merge Script an der Datenbank ausführen, sollte es immer überprüft werden. Wenn zahlreiche strukturelle Änderungen zwischen den Datenbanken vorgenommen werden müssen, ist auch das generierte Merge Script sehr umfangreich. Um eine potenziell riskante Aktualisierung mehrerer Objekte in der Zieldatenbank mit Hilfe eines großen Skripts zu vermeiden, könnten Sie kleinere Skripts generieren und diese der Reihe nach ausführen. So können Sie z.B. bestimmte Objekte (Spalten, Constraints), die in der Zusammenführung inkludiert werden sollen, auswählen und das Skript anschließend nur für die ausgewählten Objekte generieren.
So generieren Sie ein Merge Script und führen es aus:
1.Führen Sie einen Datenbankschemavergleich aus (siehe Ausführen eines Datenbankschemavergleichs).
2.Wenn Sie nur bestimmte Elemente zusammenführen möchten, haben Sie die Möglichkeit diese in einer Komponente mit Strg+Klick auszuwählen. Beachten Sie, dass es keinen Einfluss auf die Richtung der Zusammenführung hat, ob Sie die Elemente in der linken oder rechten Komponente auswählen (Sie können z.B. Elemente in der rechten Komponente auswählen und die Zusammenführung trotzdem von links nach rechts durchführen).
Wichtiger Hinweise: Child-Elemente einer Tabelle oder Spalte werden bei der Zusammenführung nicht automatisch berücksichtigt, wenn Sie nur das übergeordnete Objekt auswählen. Stellen Sie daher bei Auswahl eines übergeordneten Objekts (z.B. einer Tabelle) sicher, dass Sie auch alle Child-Objekte, die zusammengeführt werden sollen (z.B. Spalten oder Constraints), auswählen. Wenn z.B. der Spaltenname gleich ist, der Datentyp aber ein anderer (wie in der Abb. unten), müssen Sie den Datentypeintrag auswählen, damit ein gültiges Merge Script erstellt wird.
3.Wählen Sie eine der folgenden Methoden:
•Wählen Sie im Menü Vergleichen und Zusammenführen den Befehl Von links nach rechts kopieren.
•Klicken Sie auf die Symbolleisten-Schaltfläche Von links nach rechts kopieren .
Bei den oben gewählten Befehlen wird eine Zusammenführung der Datenbankstruktur von links nach rechts angenommen. Verwenden Sie andernfalls die entsprechenden umgekehrten Befehle (rechts nach links).
Das SQL Merge Script wird im Dialogfeld "Schema zusammenführen" angezeigt. Wenn vor dem Start der Zusammenführung keine Elemente ausgewählt wurden (siehe Schritt 2 oben), so ist die Option Alle Objekte verwenden ausgewählt und im Vergleichsfenster wird das "globale Merge Script" angezeigt. Die Option Ausgewählte Objekte verwenden ist aktiv, wenn ein oder mehrere Objekte für die Zusammenführung ausgewählt wurden. In diesem Fall können Sie sich immer noch für eine Zusammenführung aller Objekte entscheiden, indem Sie die Option Alle Objekte verwenden auswählen.
4.Überprüfen Sie das Merge Script und klicken Sie auf Ausführen.
Sollte das Merge Script fehlerhaft sein, können Sie die Operation abbrechen, das SQL Merge Script in einer Datei speichern und mit einem externen Editor bearbeiten oder das SQL Merge Script in DatabaseSpy anzeigen und bearbeiten, falls Sie das Programm installiert haben.
So führen Sie das Merge Script in DatabaseSpy aus:
1.Klicken Sie mit der rechten Maustaste entweder auf eine Komponentenüberschrift oder auf eines der ausgewählten Objekte und wählen Sie im Kontextmenü den Befehl Merge Script anzeigen: Links nach rechts in DatabaseSpy (bzw. gegebenenfalls den Befehl Merge Script anzeigen: Rechts nach links in DatabaseSpy). Daraufhin wird DatabaseSpy geöffnet, ein neues Projekt wird erstellt und eine Datenquellenverbindung zur Zieldatenbank (d.h. zu der Datenbank, in der die Änderungen vorgenommen werden sollen) wird hinzugefügt. Wenn in DatabaseSpy bereits ein Projekt geöffnet ist, wird eine neue Datenquellenverbindung zum Projekt hinzugefügt und Sie werden eventuell aufgefordert, einen Namen für die Datenquelle zu definieren. Das Merge Script wird in einem SQL Editor-Fenster angezeigt, wo Sie das Script überprüfen und gegebenenfalls bearbeiten können.
2.Stellen Sie eine Verbindung zur Datenquelle her und klicken Sie auf die Schaltfläche Ausführen oder drücken Sie F5, um das Change Script auszuführen und die Schemänderungen in der Datenbank zu übernehmen.
So speichern Sie das Merge Script in einer Datei:
•Klicken Sie mit der rechten Maustaste entweder auf eine Komponentenüberschrift oder auf eines der ausgewählten Objekte und wählen Sie im Kontextmenü den Befehl Merge Script speichern: Links nach rechts... (oder, je nach Fall, Merge Script speichern: Rechts nach links...).