Diese Seite beschreibt Calíope 1.7, die Version, die ich gerade baue. Die 1.6 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 — durch Kommas getrennt. 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 ServerOracleClickHouse
Mit SQL Server, Oracle und ClickHouse 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.
Verfügbar auf macOS, iPad, iPhone und Apple Vision Pro.
Apple Vision Pro: Sieh die Tabelle an und halte Daumen und Zeigefinger zusammen, um ihr Menü zu öffnen.
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 › Allgemein › Benachrichtigungen › Manuelles Backup im Hintergrund.
ClickHouse
Mit ClickHouse enthält das Backup die DDL jedes Objekts, so wie SHOW CREATE sie schreibt, und die Zeilen als INSERT-Anweisungen, gelesen, während sie eintreffen; scheitert der Server mittendrin, schlägt das Backup fehl, statt eine abgeschnittene Tabelle zu hinterlassen. Eine materialisierte View ohne TO hält ihre Zeilen in einer inneren Tabelle, die nicht im Backup ist: wiederhergestellt beginnt sie leer, und ein Kommentar neben ihrem CREATE sagt, wie man ihren Verlauf zurückholt. Ein Wörterbuch hält keine Zeilen, und wenn seine Quelle ein Passwort hat, liefert der Server es verborgen: Ein Kommentar weist darauf hin. Bytes, die kein UTF-8 sind, werden als \xHH geschrieben.
Oracle
Bei Oracle enthält der Dump die DDL jedes Objekts so, wie DBMS_METADATA sie schreibt, ohne Speicherangaben und ohne den Namen seines Schemas, und die Zeilen als INSERT-Anweisungen; jeder PL/SQL-Block endet mit / in einer eigenen Zeile, sodass auch SQL*Plus und SQLcl die Datei ausführen. Der Dump legt das Schema nicht an: Sein Kopf nennt, was vorher nötig ist – das Konto mit seinem Kontingent und seinen Rechten –, und er wird im Schema der Sitzung wiederhergestellt, die ihn ausführt. Ein LOB über 16 MiB passt nicht in den Dump, und ein Objekttyp mit einem Attribut, das ein anderes Objekt, eine Collection oder ein LOB ist, hat keinen Text: In beiden Fällen wird NULL geschrieben, und ein Kommentar sagt es.
Apple Vision Pro: wie auf dem iPad, mit der Taste Datei teilen.
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 siehst du, 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): Das Backup schreibt die Datenbank, das Schema und seine Objekte.
PostgreSQL
Jeder Eintrag des Baums ist ein Schema der Datenbank, mit der du verbunden bist: Das Backup 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.
Oracle
Jeder Eintrag im Baum ist ein Schema. Packages stehen bei den Routinen. Die Typen und Sequenzen des Schemas werden nicht ausgewählt: Sie kommen immer mit, vor seinen Tabellen.
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.
Oracle
Ein Oracle-Dump trägt den Namen seines Schemas nicht: Der Tab fragt nach In Schema, und alles, was die Datei anlegt, landet im gewählten (standardmäßig dem der Sitzung). Das Schema muss bereits existieren, mit Quota auf seinem Tablespace, denn der Dump legt das Konto nicht an. Jede Anweisung wird beim Ausführen bestätigt: Bricht sie mittendrin ab, bleibt das Angewendete bestehen. Ein Dump mehrerer Schemas landet vollständig im gewählten.
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.
ClickHouse
Mit ClickHouse geht eine Anweisung pro Anfrage, ohne Transaktion: Hält die Wiederherstellung mittendrin an, bleibt das Angewendete. Du kannst mit der Sitzung in der Datenbank wiederherstellen, die das Backup löscht und neu anlegt: Sobald sie gelöscht ist, läuft der Rest ohne Datenbank, und das Backup nennt jedes Objekt mit seiner eigenen.
Apple Vision Pro: Es öffnet sich derselbe Dokumentbrowser des Systems wie auf dem iPad (Zuletzt verwendet, Geteilt, iCloud Drive, Auf meiner Apple Vision Pro).
Mit einem schreibgeschützten Umgebungsetikett wird das Formular zum Wiederherstellen durch einen Hinweis ersetzt, der das Etikett nennt. Bei einem, das Schreibzugriffe bestätigt, trägt die Bestätigung zum Wiederherstellen seinen Namen im Titel und ist die einzige Frage.
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.
Lässt der Server ein Konto nicht lesen —der Sitzung fehlt das Recht—, wird es nicht halb geschrieben: Es bleibt draußen, und die Fußzeile der Datei nennt es unter den Schreibfehlern.
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. Den Hash eines SQL-Logins sieht nur, wer CONTROL SERVER hat; ohne das bleibt dieses Login draußen, und die Fußzeile nennt es.
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. Der Passwort-Hash steht in pg_authid, das nur ein Superuser lesen darf: Ohne ihn wird jede Rolle ohne PASSWORD geschrieben.
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.
Oracle
Die Server-Benutzer werden als CREATE USER und GRANT geschrieben. Oracle gibt das Passwort eines Kontos nicht heraus, auch nicht verschlüsselt: Das wiederhergestellte Konto entsteht ohne, und die Datei sagt es. DROP vor CREATE löscht jedes Objekt, bevor es angelegt wird, aber nicht das Schema, das der Dump weder anlegt noch löscht.
Apple Vision Pro: wie auf dem iPad, mit der Taste Datei teilen.
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.
Ein geplantes Backup löschen: Öffne das Kontextmenü seiner Zeile und wähle Löschen; auf dem iPad und dem iPhone kannst du die Zeile auch nach links wischen. Die bereits geschriebenen Dateien bleiben in ihrem Ordner.
Verfügbar auf macOS, iPad, iPhone und Apple Vision Pro. 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 (bei Bedarf 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