Diese Seite beschreibt Calíope 1.5, die Version, die ich gerade baue. Die 1.4 ist im App Store für Mac, iPad, iPhone, Apple Watch, Apple TV und Apple Vision Pro. 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.
Lade tabellarische Daten aus CSV-, JSON- oder Excel-Dateien direkt in eine Tabelle.
Wo es zu finden ist: Schema-Baum › Rechtsklick › Daten importieren…
Calíope enthält einen Import-Assistenten in drei Schritten, um Daten aus externen Dateien zu laden.
Zugriff:
Mach einen Rechtsklick (macOS) oder halte gedrückt (iPad) auf den Namen einer Tabelle im Schema-Baum und wähle Daten importieren…. Der Assistent öffnet sich mit der ausgewählten Datenbank und Tabelle vorkonfiguriert.
Schritt 1 — Datei:
Klick auf Datei auswählen… und wähle die zu importierende Datei. Der Assistent erkennt das Format automatisch. Eine Datei über 64 MB (CSV, JSON oder Excel) wird abgelehnt, bevor sie gelesen wird: Der Assistent sagt es sofort, mit der Größe der Datei und dem Maximum. Um mehr zu importieren, teil die Datei in mehrere auf.
Unterstützte Formate:
- CSV — mit automatischer Erkennung des Trennzeichens (,, ;, Tabulator). Ein Feld in Anführungszeichen darf über mehrere Zeilen gehen: Die Zeilenumbrüche innerhalb der Anführungszeichen bleiben im Wert.
- JSON — Array von Objekten [{…}, {…}].
- Excel (.xlsx) — erstes Blatt der Arbeitsmappe von Microsoft Excel oder Numbers.
Schritt 2 — Spalten:
Der Assistent zeigt die Spalten der Datei und eine Auswahl, um jede der entsprechenden Spalte der Zieltabelle zuzuordnen. Nicht zugeordnete Spalten werden als Ignorieren gekennzeichnet und nicht importiert. Aktiviere Erste Zeile ist Kopfzeile, wenn die Datei eine Titelzeile hat.
Schritt 3 — Importieren:
Konfiguriere die Importoptionen:
- Einfügemodus — erscheint nur, wenn der Motor mehr als einen anbietet:
- Einfügen — fügt die Zeilen unverändert ein. Eine Zeile, deren Primärschlüssel schon existiert, schlägt mit der Meldung des Servers fehl.
- Duplikate überspringen — fügt die neuen Zeilen ein und lässt die aus, deren Primärschlüssel schon existiert.
- Duplikate ersetzen — existiert der Primärschlüssel schon, ersetzt die Zeile aus der Datei die in der Tabelle.
- Zeilen pro Batch — Anzahl der Zeilen, die in jeder INSERT-Anweisung eingefügt werden. Optionen: 100, 500 oder 1000. Größere Batches sind schneller, verbrauchen aber mehr Serverspeicher.
MySQLMariaDBAurora
Mit MySQL und MariaDB werden alle drei Modi angeboten.
PostgreSQL
Mit PostgreSQL werden nur Einfügen und Duplikate überspringen angeboten: Was Calíope dort bei einem Duplikat schreiben kann, überspringt die Zeile, ersetzt sie aber nicht — Duplikate ersetzen würde also etwas versprechen, das nicht passiert.
SQL Server
Mit SQL Server ist nur Einfügen möglich, deshalb wird die Auswahl gar nicht gezeigt: Ein Duplikat schlägt mit der Meldung des Servers fehl.
Das Log-Panel zeigt den Fortschritt und das Ergebnis Zeile für Zeile.
Exportiere ausgewählte Datenbanken und Objekte in eine .sql- oder .sql.gz-Datei, ohne die Oberfläche zu blockieren.
Wo es zu finden ist: Workspace › Werkzeuge › Backup
Öffne Backup in der Navigationsleiste des Workspace. Wähle im Tab Backup die einzubeziehenden Datenbanken und Objekte über den Baum links aus. Konfiguriere die Optionen und wähle die Zieldatei. Klick auf Backup erstellen.
Verarbeitung im Hintergrund:
Das Backup läuft vollständig außerhalb des Hauptthreads. Die Oberfläche bleibt vollständig reaktionsfähig, während die Engine die Daten ausgibt. Das untere Log-Panel zeigt den Fortschritt Objekt für Objekt in Echtzeit.
Geschätzte Zeit (ETA):
Sobald das erste Objekt verarbeitet ist, erscheint neben dem Fortschrittsbalken ein Zähler für die geschätzte verbleibende Zeit, berechnet aus der aktuellen Dump-Geschwindigkeit.
Ein Backup abbrechen:
Klick jederzeit auf Abbrechen. Die Engine stoppt den Dump nach Abschluss des laufenden Vorgangs und entfernt die unvollständige Datei von der Festplatte.
macOS:Speichern unter… wählt die Datei im Sichern-Dialog; nach Abschluss führt dich Im Finder zeigen zu ihr. iPad: nach Abschluss erscheint die Schaltfläche Datei teilen, um in den Gerätespeicher oder auf iCloud Drive zu exportieren.
Benachrichtigung nach Abschluss:
Wenn du während eines langen Backups die App minimierst oder wechselst, sendet Calíope nach Abschluss oder im Fehlerfall eine lokale Benachrichtigung. Erfordert erteilte Benachrichtigungsberechtigung (macOS: Mitteilungszentrale; iPad: Einstellungen › Mitteilungen). Aktiviere oder deaktiviere diese Benachrichtigung unter Einstellungen › Benachrichtigungen › Manuelles Backup im Hintergrund.
Wähle, welche Tabellen, Views, Routinen und Benutzer einbezogen werden.
Wo es zu finden ist: Backup › Auswahlbaum
Der Baum links zeigt jede Datenbank mit ihren Objekttypen: Tabellen, Views, Routinen und Trigger, dazu Events, wo der Server sie hat. Beim Öffnen des Werkzeugs ist alles markiert. Alle markieren und Alle abwählen markieren oder leeren alles, und die Kurzwahlen Alles, Nur Tabellen und Nur Struktur wählen blockweise aus (Nur Struktur schaltet außerdem Daten einschließen aus); oder markiere und entmarkiere einzeln. Der Abschnitt Server-Benutzer erlaubt es, die Konten des Servers und ihre Berechtigungen in das Backup aufzunehmen.
Der Baum hat zudem einen Filter nach Namen in der Kopfzeile und zeigt neben jeder Tabelle die geschätzte Größe. Das Kontrollkästchen jeder Datenbank wählt ihren gesamten Inhalt aus oder ab, und rechts daneben sehen Sie, wie viele Objekte von wie vielen ausgewählt sind. Der Abschnitt Server-Benutzer liegt unter dem Baum, nicht darin: Benutzer gehören zum Server und hängen an keiner Datenbank. Eine Datenbank, die nach dem Öffnen des Werkzeugs angelegt wurde, erscheint mit Datenbankliste aktualisieren im Kontextmenü des Baums.
SQL Server
Jeder Eintrag des Baums ist eine Datenbank mit einem ihrer Schemas (demo.dbo, demo.rrhh): Die Sicherung schreibt die Datenbank, das Schema und seine Objekte.
PostgreSQL
Jeder Eintrag des Baums ist ein Schema der Datenbank, mit der du verbunden bist: Die Sicherung schreibt das Schema, die Erweiterungen, die es nutzt, und seine Objekte. Die Objekte, die eine Erweiterung mitbringt – etwa die Funktionen von PostGIS –, werden nicht aufgelistet: Beim Wiederherstellen legt die Datei die Erweiterung neu an.
Führe eine .sql- oder .sql.gz-Datei gegen den Server aus, um Daten wiederherzustellen.
Wo es zu finden ist: Backup › Tab Wiederherstellen
Wähle im Tab Wiederherstellen die Datei mit Datei auswählen…. Es werden .sql- und .sql.gz-Dateien (mit gzip komprimiert) akzeptiert; Calíope erkennt das Format anhand der magischen Zahl der Datei, nicht anhand der Erweiterung, sodass ein Umbenennen der Datei das Ergebnis nicht ändert.
Vorschau: klick auf Vorschau, um die ersten ~200 Zeilen vor der Ausführung zu prüfen. Nützlich, um zu prüfen, welche Datenbanken und Anweisungen ein Dump enthält, bevor du ihn anwendest.
Vorherige Bestätigung: beim Klick auf Wiederherstellen erscheint eine Zusammenfassung mit der Anzahl der erkannten Anweisungen und den betroffenen Datenbanken (gelesen aus den Anweisungen, die sie auswählen, anlegen oder löschen). Wenn das Skript DROP-Anweisungen enthält, warnt die Zusammenfassung, dass vorhandene Objekte entfernt werden.
SQL Server
Die Datei ist in Batches aufgeteilt, die durch GO-Zeilen getrennt sind, und die Wiederherstellung trennt nur an diesen Zeilen: Der Rumpf einer Prozedur mit ; darin kommt ganz an.
PostgreSQL
Die Datei wird in der Datenbank wiederhergestellt, mit der du verbunden bist: Ihre Schemas werden dort angelegt.
MySQLMariaDBAurora
Ein Dump von mysqldump oder mariadb-dump wird so wiederhergestellt, wie es der Kommandozeilen-Client täte: Seine ausführbaren Kommentare (/*!40101 … */) erreichen den Server, und roh gesicherte Binärspalten, ohne --hex-blob, kommen Byte für Byte an.
Abbruch: während der Wiederherstellung kannst du auf Abbrechen klicken, um die Ausführung nach der aktuellen Anweisung zu stoppen.
Fehler: die Wiederherstellung läuft in einer einzigen Sitzung und hält beim ersten Fehler an. Das Log nennt die fehlgeschlagene Anweisung (das Objekt und seine Datenbank) mit der Meldung des Servers und sagt, bei welcher Anweisung sie angehalten hat.
macOS: die Auswahl öffnet den Standard-Finder-Dialog. iPad: die Auswahl verwendet den Dokumentbrowser des Systems, mit Zugriff auf iCloud Drive und kompatible Apps. Es wird ein security-scoped bookmark erzeugt, um die Datei nach dem Schließen des Pickers erneut lesen zu können.
Erfordert aktive Verbindung: die Schaltfläche ist deaktiviert, wenn kein Server verbunden ist. Ein oranger Hinweis weist darauf hin.
Konfiguriere Inhalt, Format und Komprimierung der erzeugten Backup-Datei.
Wo es zu finden ist: Backup › Optionsabschnitt
Im Tab Backup erlaubt der Optionsabschnitt einzustellen, was die erzeugte Datei enthält:
- DROP vor CREATE — fügt DROP TABLE IF EXISTS (oder DROP VIEW, DROP PROCEDURE usw.) vor jeder CREATE-Anweisung hinzu. Empfohlen für saubere Wiederherstellungen, die vorhandene Objekte überschreiben.
- Daten einbeziehen — fügt INSERT-Anweisungen mit den Daten jeder ausgewählten Tabelle hinzu. Deaktiviere es, um nur das Schema zu erzeugen (Struktur ohne Daten).
- Datum in Namen einschließen — fügt Datum und Uhrzeit zum Dateinamen hinzu; unter macOS zu dem Namen, den Speichern unter… vorschlägt (z. B. backup_2026-06-05_14-30.sql).
- Server-Benutzer einschließen — das Kontrollkästchen des Abschnitts Server-Benutzer unter dem Baum: exportiert die dort markierten Konten und ihre Berechtigungen mit den Anweisungen, die sie anlegen, und ihren Berechtigungen.
- Benutzerpasswörter einbeziehen — erscheint, wenn die Server-Benutzer eingeschlossen sind. Explizite Option, standardmäßig deaktiviert. Wenn sie ausgeschaltet ist, wird das Passwort – oder sein Hash – als '***REDACTED***' geschrieben. Aktiviere sie nur, wenn du die Datei auf demselben Server wiederherstellst und sicher bist, dass der Zielordner nicht mit iCloud Drive, Dropbox oder einem anderen Dienst synchronisiert wird.
- Ausgabe komprimieren (.sql.gz) — wendet gzip-Komprimierung auf die Datei an, während sie erzeugt wird, ohne das vollständige SQL im Speicher zu halten. Die resultierende Datei ist um 70 % bis 85 % kleiner als die entsprechende .sql. Die Komprimierung erfolgt in Echtzeit über das Compression-Framework von Apple.
MySQLMariaDBAurora
Die Server-Benutzer werden als CREATE USER und GRANT geschrieben.
SQL Server
Die Server-Benutzer sind die Logins: Jedes wird als CREATE LOGIN … WITH PASSWORD = … HASHED geschrieben, mit seinem Benutzer, seinen Rollen und Berechtigungen in jeder Datenbank. DROP vor CREATE löscht außerdem zuerst alle Objekte jedes Schemas, das die Datei mitbringt.
PostgreSQL
Die Server-Benutzer sind die Rollen: Jede wird als CREATE ROLE geschrieben, und die vordefinierten pg_-Rollen nur mit ihren Berechtigungen, weil jeder Server sie schon hat. DROP vor CREATE löscht jedes Schema ganz (DROP SCHEMA … CASCADE), bevor es neu angelegt wird.
macOS:Speichern unter… wählt die Datei im Standard-Sichern-Dialog. iPad: nach Abschluss des Backups erlaubt die Schaltfläche Datei teilen, die .sql oder .sql.gz an jedes mit der Dateiauswahl des Systems kompatible Ziel zu exportieren.
Stichwörter: backup optionen, DROP IF EXISTS, daten einbeziehen, benutzer einbeziehen, schema, struktur, daten, dateidatum, drop before create, komprimieren, gzip, sql.gz, komprimierung
Konfiguriere wiederkehrende Backups (täglich, wöchentlich, werktags, monatlich oder alle N Stunden) mit Benachrichtigung nach Abschluss.
Wo es zu finden ist: Workspace › Werkzeuge › Backup
Calíope kann Backups automatisch ohne manuellen Eingriff ausführen. Um sie zu konfigurieren, öffne das Panel Backup in der Seitenleiste des Workspace.
So konfigurierst du ein geplantes Backup:
1. Klick im Tab Geplant des Backup-Panels auf Neu.
2. Gib ihm einen Namen und wähle das Verbindungsprofil (oder jede aktive Verbindung), die Häufigkeit (täglich, wöchentlich, Montag bis Freitag, monatlich, alle N Stunden oder auf Abruf), die Uhrzeit, den Zielordner und wie viele Kopien behalten werden.
3. Der Schalter in seiner Zeile schaltet es ein und aus.
Ein geplantes Backup sichert alle Datenbanken seiner Verbindung, mit DROP vor CREATE und den Daten, unkomprimiert. Um nur einige Datenbanken zu sichern, speichere im Tab Backup eine Konfiguration und gib ihr mit dem Stift-Button eine Häufigkeit.
Verhalten:
- Wenn die App zur konfigurierten Zeit geöffnet ist, läuft das Backup im Hintergrund, ohne die Oberfläche zu blockieren.
- Nach Abschluss erhältst du eine Systembenachrichtigung mit dem Namen der Datei und ihrer Größe.
- Wenn die App zur geplanten Zeit nicht geöffnet war, wird das Backup als ausstehend markiert: ein Banner sagt, wie viele verpasst wurden, und Jetzt ausführen in seiner Zeile startet es.
- Die ältesten Backups werden automatisch gelöscht, sobald die konfigurierte maximale Anzahl von Kopien überschritten wird.
Auswahl des Zielordners:
Calíope läuft in einer strengen Sandbox (Voraussetzung des App Store). Wenn du den Ordner mit Ordner auswählen… auswählst, wird eine dauerhafte Berechtigung für diesen spezifischen Pfad erzeugt. Wenn du den Ordner danach verschiebst oder umbenennst, weist dich die App darauf hin, dass du ihn erneut auswählen musst. Den Pfad von Hand in der Karte zu bearbeiten, reicht nicht — verwende immer Ordner auswählen….
Leistung:
Geplante Backups verwenden dieselbe Streaming-Engine wie die manuellen: sie schreiben Objekt für Objekt direkt auf die Festplatte, ohne das SQL im Speicher anzusammeln. Das ermöglicht das Sichern von Datenbanken beliebiger Größe ohne Risiko einer RAM-Erschöpfung oder eines Absturzes der App.
Verfügbar auf macOS, iPad und iPhone. Erfordert die Benachrichtigungsberechtigung des Systems.
Verwende die Parameter eines Backups wieder, ohne es zeitlich zu planen. Sie werden auf Abruf mit einem Klick ausgeführt.
Wo es zu finden ist: Backup › Tab Geplant
Neben den automatischen Backups (täglich, wöchentlich, werktags, monatlich oder alle N Stunden) kann der Tab Geplantmanuelle Vorlagen aufnehmen: mit Namen gespeicherte Konfigurationen, die nur ausgeführt werden, wenn du in ihrer Zeile auf die Schaltfläche Ausführen klickst.
So erstellst du eine manuelle Vorlage:
1. Markiere im Tab Backup, was gesichert werden soll, und klick auf Als Konfiguration speichern… neben Backup erstellen. Die Vorlage behält die Verbindung und die Datenbanken, die markierte Objekte enthalten (ganze Datenbanken), und wird im Tab Geplant mit der Häufigkeit "Manuell — auf Abruf" registriert. Der Ordner wird nicht übernommen, weil die mit Speichern unter… gewählte Datei keine Erlaubnis gibt, später wieder in ihren Ordner zu schreiben: wähle ihn vor dem ersten Lauf mit dem Stift-Button (Ordner auswählen…). Die Optionen sind die jedes geplanten Backups: DROP vor CREATE und die Daten, unkomprimiert.
2. Alternativ wähle unter Geplant › Neu in der Häufigkeitsauswahl die Option Ohne Zeitplan (auf Abruf ausführen).
Visuelle Unterschiede eines manuellen Presets:
- Indigofarbenes Symbol bolt.circle.fill (statt grünem calendar.badge.checkmark für aktive geplante).
- Primäre Schaltfläche Ausführen immer in der Zeile sichtbar.
- Kein Aktiv/Inaktiv-Toggle und keine "nächste Ausführung" (nicht zutreffend).
- Keine Ansammlung von missedRuns (nehmen nicht am automatischen Zyklus teil).
Verfügbare Häufigkeiten für automatische Backups:
- Täglich zu einer festen Uhrzeit.
- Wöchentlich an einem bestimmten Wochentag.
- Mo–Fr (werktags) von Montag bis Freitag.
- Monatlich an einem bestimmten Tag (1–28) des Monats.
- Alle N Stunden gezählt ab dem letzten Lauf.
- Manuell (auf Abruf) — ohne automatischen Zeitplan.
Ausführungsverlauf: die Schaltfläche clock.arrow.circlepath jeder Zeile (Verlauf anzeigen) öffnet die Läufe dieses Backups: Erfolge, Fehlschläge, abgebrochene und übersprungene. Ohne bisherigen Lauf sagt sie das.
Stichwörter: preset, vorlage, manuell, auf abruf, geplant, häufigkeit, monatlich, werktags, alle N stunden, verlauf, run history