Skip to main content
SQLOZ
Chapter 6 Schema & Model Architecture

Kapitel 6: Schema-Vergleich und Synchronisation

Info: Dieses Kapitel erläutert das Auffinden von Schema-Unterschieden zwischen zwei Datenbanken, die visuelle Differenz-Matrix sowie richtliniengesteuerte Backup- und Rollback-Schutzmechanismen.

In diesem Kapitel:

6.1 Auffinden von Schema-Unterschieden

Entwicklungs- und Produktivdatenbanken weichen im Laufe der Zeit oft unbemerkt voneinander ab (Schema Drift). SQLOZ identifiziert strukturelle Abweichungen zwischen zwei Instanzen und sichert die Synchronisation ab:

  1. Wählen Sie im oberen Menü Werkzeuge → Schemata vergleichen….
  2. Quelle (Source): Die Referenzdatenbank (z. B. local_dev).
  3. Ziel (Target): Die zu aktualisierende Datenbank (z. B. production_db).
  4. Klicken Sie auf Vergleichen.

6.2 Visuelle Differenz-Matrix

Die ermittelten Differenzen werden in einer farbcodierten Matrix gegenübergestellt:

FarbeBedeutungGenerierte DDL-Aktion
🟢 GrünIn Quelle vorhanden, fehlt im ZielCREATE TABLE / ADD COLUMN
🟡 GelbIn beiden vorhanden, aber abweichender Typ/IndexALTER TABLE
🔴 RotIn Quelle gelöscht, im Ziel noch vorhandenDROP

Beispiel:

QUELLE (local_dev)                | ZIEL (prod_db)                  | AKTION
payments                          | ❌ (fehlt)                      | ➕ CREATE TABLE payments
users.phone_verified (BOOLEAN)    | users.phone_verified (TINYINT)  | 🔄 MODIFY COLUMN

6.3 Schutz- und Sicherheitsmechanismen

Vor dem Klick auf Synchronisation anwenden prüft SQLOZ das Fehlerrisiko:

  1. Automatisches Tabellen-Backup (_sqloz_bak_...): Diese Option steht für MySQL/MariaDB-Ziele zur Verfügung. Vor destruktiven DDL-Operationen (DROP TABLE, DROP COLUMN, MODIFY COLUMN) werden die betroffenen Zieldaten auf dem Server in einer Tabelle mit Zeitstempel gesichert:
    CREATE TABLE IF NOT EXISTS `_sqloz_bak_<timestamp>_users` AS SELECT * FROM `users`;
  2. Rollback- und Datenrettungsskript (MySQL/MariaDB): Wurde die automatische Sicherung durchgeführt, generiert SQLOZ ausführbaren Rollback-Code sowie auskommentierte Datenwiederherstellungsanweisungen:
    -- INSERT IGNORE INTO `users` SELECT * FROM `_sqloz_bak_<timestamp>_users`;
  3. Schutz vor destruktiven Löschvorgängen: Müssen Tabellen oder Spalten im Ziel entfernt werden, verlangt SQLOZ eine ausdrückliche Bestätigung, bevor Befehle gesendet werden.

Warnung: Bei PostgreSQL- oder SQLite-Instanzen wird keine automatische Backup-Tabelle erstellt. Führen Sie vor Schema-Änderungen an diesen Engines stets eine eigene, verifizierte Datenbanksicherung durch.

Schema-Vergleich - Differenz-Matrix

Verwandte Themen