SchemaWerk vergleicht zwei MySQL-8-Datenbankschemas. Das Quellschema beschreibt den gewünschten Zustand, das Zielschema den aktuellen Zustand der Datenbank, die angepasst werden soll.
Die Anwendung stellt Unterschiede übersichtlich dar, erzeugt daraus einen auswählbaren Änderungsplan und erstellt eine SQL-Vorschau. Das SQL wird nicht automatisch ausgeführt. Dadurch bleibt die Kontrolle über jede geplante Änderung beim Benutzer.
SchemaWerk 1.0.0 ist die erste öffentliche Vollversion. Die Kernfunktionalität ist für Standard-Szenarien mit MySQL 8 ausgelegt, dennoch sollten Vergleichsergebnisse und generierte SQL-Skripte vor dem produktiven Einsatz in der Zielumgebung sorgfältig überprüft werden.
Funktionen
- getrennte Verbindungen für Quell- und Zieldatenbank
- Verbindungstest und Auswahl der verfügbaren Datenbanken
- Vergleich von:
- Tabellen
- Spalten und Spalteneigenschaften
- Primärschlüsseln – Standardfälle
- Indizes und UNIQUE-Constraints – Standardfälle
- Fremdschlüsseln –Standardfälle
- Tabellenoptionen – Standardfälle
- filterbare Master-/Detailansichten für Vergleichsergebnisse
- Änderungsplan mit auswählbaren Operationen für unterstützte Schemaänderungen
- Risikobewertung für nicht destruktive, prüfpflichtige und destruktive Änderungen
- Prüfung von Abhängigkeiten zwischen unterstützten Schemaänderungen
- Erzeugung einer kommentierten SQL-Vorschau für MySQL 8 für unterstützte Tabellen- und Spaltenänderungen
- Kopieren der SQL-Vorschau in die Zwischenablage
- Benutzeroberfläche auf Deutsch, Englisch und Französisch
- sofortiger Sprachwechsel ohne Neustart
- System-, Hell- und Dunkelmodus
- Speicherung von Theme, Sprache, Fenstergröße und Fensterposition
- tastaturfreundliche Navigation in der Verbindungsansicht
- „Über“-, Einstellungs- und Update-Dialog
- installer-neutrale Update-Prüfung mit vorbereiteter Verteilungsstrategie für Microsoft Store, MSIX, Intune und Direktdownload
- automatisierte Tests für Vergleich, Planung, SQL-Erzeugung und Lokalisierung
Bewusste Einschränkungen
SchemaWerk führt derzeit keine Änderungen direkt auf einer Datenbank aus. Folgende Funktionen sind noch nicht Bestandteil von Version 1.0.0:
- direkte Ausführung des erzeugten SQL-Skripts
- Export des SQL-Skripts in eine Datei
- Ausführungsprotokoll
- automatisches erneutes Laden des Schemas vor einer Ausführung
- Vergleich von Views, Triggern, Routinen oder Ereignissen
Zusätzlich gilt für Version 1.0.0: Primärschlüssel, normale Indizes, UNIQUE-Constraints, Fremdschlüssel und Tabellenoptionen werden für Standardfälle automatisch geplant und als SQL erzeugt. Dazu gehören ADD PRIMARY KEY, DROP PRIMARY KEY, Änderungen als DROP PRIMARY KEY plus ADD PRIMARY KEY, ADD INDEX, DROP INDEX, ADD UNIQUE INDEX, Indexänderungen als DROP INDEX plus ADD INDEX, ADD CONSTRAINT ... FOREIGN KEY, DROP FOREIGN KEY sowie ALTER TABLE für Engine, Default Character Set und Default Collation. Neue oder geänderte AUTO_INCREMENT-Spalten werden unterstützt, wenn die passende Primärschlüsseloperation mit ausgewählt ist. Fremdschlüssel werden mit lokalen Schema-Referenzen auf die Zieldatenbank umgeschrieben; externe referenzierte Schemas bleiben erhalten. Ungewöhnliche Index-, Fremdschlüssel- oder Tabellenoptionskombinationen müssen weiterhin besonders sorgfältig geprüft und bei Bedarf im SQL-Skript angepasst werden.