Diese Seite beschreibt Calíope 1.5, die Version, die wir gerade bauen. Die 1.4 ist fertig und in der App-Review, und der Store liefert heute 1.3 auf dem Mac und 1.2 auf dem iPad. Das Changelog sagt, in welcher Version jede Funktion kam.
Fügt jedem Thema einen Button „In Calíope öffnen“ hinzu. Funktioniert nur mit installierter App.
Visualisiere die Beziehungen zwischen den Tabellen einer Datenbank.
Wo es zu finden ist: Workspace › Werkzeuge › ER
Öffne das ER-Diagramm in der Navigationsleiste des Workspace. Wähle die Datenbank in der oberen Auswahl aus, und Calíope lädt die Tabellen mit ihren Spalten und den vorhandenen Fremdschlüssel-Beziehungen.
Das Diagramm zeigt die Tabellen als Knoten mit Spalten und Datentyp. Die Linien zwischen den Tabellen stellen die auf dem Server erkannten FKs dar.
Stichwörter: ER, entity relationship, diagramm, FK, foreign key, fremdschlüssel, beziehungen
Zoome heran, heraus und verschiebe die Ansicht des Diagramms.
Wo es zu finden ist: ER-Diagramm › Canvas
Vergrößern und verkleinern — unter macOS das Mausrad, eine Zwei-Finger-Pinch-Geste auf dem Trackpad oder die Schaltflächen der Leiste; auf dem iPad die Pinch-Geste oder dieselben Schaltflächen. Zwischen − und + steht der Prozentwert, der die aktuelle Skalierung angibt; die Tastenkürzel sind ⌘−, ⌘+ und ⌘0. Die Grenzen sind auf allen dreien gleich: 18 % bis 400 %, und die Schaltfläche wird am Anschlag deaktiviert.
Canvas verschieben — zieh über eine leere Fläche, auf allen dreien. Über einem Knoten verschiebt das Ziehen die Tabelle.
Zurück zum Gesamtbild — die Schaltfläche An Fenster anpassen (⌘0) rahmt alle Tabellen ein. Das Diagramm passt sich außerdem beim Öffnen und beim Ändern der Fenstergröße von selbst wieder ein.
Die Schaltfläche Automatisches Layout ordnet die Knoten neu an, um Überlappungen zu minimieren.
Zeichne eine neue Fremdschlüssel-Beziehung zwischen zwei Tabellen.
Wo es zu finden ist: ER-Diagramm › Rechtsklick › FK-Beziehung erstellen
Öffne das Kontextmenü einer Tabelle — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und wähle Neue FK-Beziehung…. Es öffnet sich ein Dialog, um die Quelltabelle und -spalte sowie die Zieltabelle und -spalte auszuwählen. Bei der Bestätigung führt Calíope das ALTER TABLE … ADD FOREIGN KEY auf dem Server aus.
Nur unter macOS, zusätzlich: Halt ⌃ (Control) gedrückt und zieh von einer Tabelle zur Zieltabelle; während der Geste wird eine Gummibandlinie gezeichnet, und beim Loslassen öffnet sich derselbe Dialog. Auf dem iPad gibt es diese Geste nicht — der Fremdschlüssel wird über das Kontextmenü erstellt.
Stichwörter: FK, foreign key, fremdschlüssel, beziehung erstellen, ALTER TABLE
Behalte die Position der Knoten bei, um deine Anordnung über Sessions hinweg zu erhalten.
Wo es zu finden ist: ER-Diagramm › Layout speichern
Klick auf die Schaltfläche Layout speichern in der Symbolleiste des ER-Diagramms. Die aktuellen Positionen aller Tabellenknoten werden in UserDefaults unter dem Schlüssel caliope_er_layout_v1 gespeichert.
Wenn du das Diagramm für dieselbe Datenbank das nächste Mal öffnest, werden die Knoten an den gespeicherten Positionen wiederhergestellt. Wenn kein Layout gespeichert ist, wendet das Diagramm automatisch das Auto-Layout an.
Wo es zu finden ist: ER-Diagramm › SVG / PDF exportieren
In der Symbolleiste des ER-Diagramms bietet die Export-Schaltfläche zwei Formate an: SVG (vektorbasiert, mit Illustrator oder Inkscape bearbeitbar) und PDF (fertig für Druck oder Präsentation). Die Datei wird an dem Ort gespeichert, den du im Systemdialog auswählst.
Sieh dir die vollständige Struktur einer Tabelle direkt im Diagramm an.
Wo es zu finden ist: ER-Diagramm › Rechtsklick › Tabellenstruktur bearbeiten
Öffne das Kontextmenü eines Tabellenknotens im Diagramm — Rechtsklick unter macOS, gedrückt halten auf dem iPad — und wähle Tabellenstruktur bearbeiten. Es öffnet sich ein Panel mit dem vollständigen CREATE TABLE der ausgewählten Tabelle.
Stichwörter: DDL, CREATE TABLE, struktur, tabelle anzeigen, show create
Vergleicht zwei Datenbanken auf demselben Server – Tabellen, Views, Routinen, Trigger und Events – und erzeugt das Migrationsskript.
Wo es zu finden ist: Workspace › Werkzeuge › Diff
Das Werkzeug zum Vergleichen von Schemas (Schema Diff) analysiert zwei Datenbanken auf demselben Server und zeigt genau, was sich bei Tabellen, Views, Prozeduren, Funktionen, Triggern und Events geändert hat.
Schema Diff öffnen:
Klicke in der Seitenleiste Werkzeuge auf Diff (Symbol mit gegenläufigen Pfeilen). Es öffnet sich in einem neuen Tab.
Grundlegende Verwendung:
1. Wähle in der oberen Leiste die Quell-Datenbank und die Ziel-Datenbank.
2. Klicke auf Vergleichen. Calíope liest zu jedem Objekt in beiden Datenbanken das SHOW CREATE … — die kanonische Definition, die der Server selbst schreibt.
3. Schalte Nur Änderungen ein, um Übereinstimmendes auszublenden.
4. Der Bericht ist nach Objekttyp gruppiert. Klappe eine Zeile auf: Bei einer geänderten Tabelle steht Änderung für Änderung die vorhandene und die künftige Definition; bei einer geänderten View oder Routine stehen beide vollständigen Definitionen nebeneinander; bei einem neuen oder gelöschten Objekt sein DDL.
5. Klicke auf SQL kopieren für das ganze Skript oder auf die Kopieren-Schaltfläche einer Zeile für nur dieses Objekt.
Was für Tabellen erzeugt wird:
- Ein vollständiges CREATE TABLE IF NOT EXISTS für die in der Quelle fehlenden, mit Spalten, Indizes und Optionen.
- DROP TABLE IF EXISTS für die überzähligen.
- ALTER TABLE mit ADD/DROP/MODIFY COLUMN — Typ, Nullbarkeit, Standardwert, Kommentar, Zeichensatz und der Ausdruck einer generierten Spalte bleiben erhalten.
- Hinzufügen und Entfernen von Primärschlüssel, Indizes und CHECK-Bedingungen sowie Änderungen an Tabellenoptionen (ENGINE, DEFAULT CHARSET, COLLATE, ROW_FORMAT, COMMENT).
Was für alles Übrige erzeugt wird:
Eine View oder eine Routine lässt sich nicht stückweise reparieren: Weicht ihre Definition ab, baut das Skript sie mit der des Ziels neu (DROP + CREATE) und schreibt dabei die Verweise auf das Quellschema um, damit sie auf die richtige Datenbank zeigt.
Reihenfolge des Skripts:
Zuerst die Tabellen; dann die Fremdschlüssel in einem eigenen Block, denn beim Anlegen mehrerer Tabellen beachtet die alphabetische Reihenfolge die Abhängigkeiten nicht; danach ein USE und die übrigen Objekte nach Typ, innerhalb jedes Typs nach Abhängigkeiten sortiert — eine View, die auf einer anderen aufbaut, kommt nach dieser.
Absichtlich ignoriert:
Der AUTO_INCREMENT-Zähler, der mit jedem Insert wächst und zwischen zwei Kopien nie übereinstimmt.
Was nicht abgedeckt ist:
Eine geänderte Partitionierung wird erkannt und als Hinweis vermerkt, aber nie in SQL übersetzt: Neu zu partitionieren schreibt die ganze Tabelle neu. Spalten einer bestehenden Tabelle werden nicht umsortiert, und eine umbenannte Spalte erscheint als Löschung plus Neuanlage. Views, Routinen, Trigger und Events werden textuell verglichen: Schon eine andere Formatierung oder ein anderer DEFINER zählt als Unterschied — und unter MariaDB ist das DDL eines Triggers der wörtliche Text, mit dem er geschrieben wurde. Ein Event mit anderer Startzeit unterscheidet sich ebenfalls, denn diese Zeit gehört zu seiner Definition.
Prüfe das Skript immer, bevor du es in der Produktion ausführst.
Typischer Anwendungsfall:
Das Entwicklungsschema (Quelle) vor einem Deployment mit der Produktion (Ziel) vergleichen, um das Migrationsskript zu erzeugen, ohne es von Hand zu schreiben.
Verfügbar unter macOS, iPad und iPhone.
Stichwörter: Schema Diff, vergleichen, Schema, ALTER TABLE, Migration, Unterschiede, ADD COLUMN, DROP COLUMN, MODIFY COLUMN, SHOW CREATE TABLE, CREATE TABLE, Indizes, Fremdschlüssel, Partitionierung, nur Änderungen
Füge eine zweite Datenbank zum Canvas des ER-Diagramms hinzu, um Beziehungen zwischen Datenbanken zu visualisieren.
Wo es zu finden ist: ER-Diagramm › + DB
Das ER-Diagramm kann Tabellen aus zwei Datenbanken gleichzeitig im selben Canvas anzeigen, einschließlich der Fremdschlüssel, die von einer Datenbank in eine andere übergreifen.
Wie du eine zweite Datenbank hinzufügst:
1. Wähl bei geöffnetem ER-Diagramm die Haupt-DB im linken Auswahlmenü der Werkzeugleiste.
2. Klick auf den Button + DB in der Werkzeugleiste, um eine zweite Datenbank hinzuzufügen.
3. Wähl die zweite DB im neuen Auswahlmenü, das erscheint.
4. Der Canvas aktualisiert sich automatisch und zeigt die Tabellen beider Datenbanken.
Farbkodierung:
- Blaue Kopfzeile — Tabellen der Haupt-DB.
- Blaugrüne Kopfzeile (Teal) — Tabellen der zweiten DB.
- Orangefarbene Pfeile — Fremdschlüssel-Beziehungen, die von einer Datenbank in eine andere übergreifen.
- Normale Pfeile — Beziehungen innerhalb derselben Datenbank.
Voraussetzung für Cross-Database-Beziehungen:
Die Fremdschlüssel müssen im information_schema deklariert sein. MySQL/MariaDB registriert die FKs in information_schema.KEY_COLUMN_USAGE. Wenn die Beziehungen zwischen Datenbanken nicht erscheinen, prüfe, ob die FKs formal auf dem Server existieren (nicht nur Namenskonventionen sind).
Navigation und Export:
Alle Funktionen des normalen ER-Diagramms gelten auch für den Multi-Datenbank-Canvas: Zoom, Pan, Auto-Layout, Layout speichern, SVG/PDF exportieren und DDL von Tabellen ansehen. Sieh dir die Themen zu ER-Diagramm für mehr Details an.