Questa pagina descrive Calíope 1.5, la versione che sto costruendo adesso. La 1.4 è sull'App Store per Mac, iPad, iPhone, Apple Watch, Apple TV e Apple Vision Pro. Il changelog dice in quale versione è arrivata ogni funzione.

Aggiunge a ogni argomento un pulsante «Apri in Calíope». Funziona solo con l'app installata.

Backup e ripristino

Importare dati da CSV, JSON o Excel

Carica dati tabulari da file CSV, JSON o Excel direttamente in una tabella.

Dove si trova: Albero dello schema › clic destro › Importa dati…

Calíope include una procedura guidata di importazione in tre passi per caricare dati da file esterni.

Come accedere:
Fai clic destro (macOS) o tieni premuto (iPad) sul nome di una tabella nell'albero dello schema e seleziona Importa dati…. La procedura guidata si apre preconfigurata con il database e la tabella selezionati.

Passo 1 — File:
Premi Seleziona file… e scegli il file da importare. La procedura guidata rileva automaticamente il formato. Un file di oltre 64 MB (CSV, JSON o Excel) viene rifiutato prima di leggerlo: la procedura guidata lo dice subito, con la dimensione del file e il massimo. Per importare di più, dividi il file in più parti.

Formati supportati:
- CSV — con rilevamento automatico del separatore (,, ;, tabulazione). Un campo tra virgolette può occupare più righe: gli a capo dentro le virgolette restano nel valore.
- JSON — array di oggetti [{…}, {…}].
- Excel (.xlsx) — primo foglio della cartella di lavoro di Microsoft Excel o Numbers.

Passo 2 — Colonne:
La procedura guidata mostra le colonne del file e un selettore per mappare ciascuna alla colonna corrispondente della tabella di destinazione. Le colonne senza mappatura vengono etichettate come Ignora e non vengono importate. Attiva La prima riga è un'intestazione se il file ha una riga di titoli.

Passo 3 — Importa:
Configura le opzioni di importazione:
- Modalità di inserimento — appare solo se il motore ne offre più di una:
- Inserisci — inserisce le righe così come sono. Una riga la cui chiave primaria esiste già fallisce con il messaggio del server.
- Salta i duplicati — inserisce le righe nuove e lascia fuori quelle la cui chiave primaria esiste già.
- Sostituisci i duplicati — se la chiave primaria esiste già, la riga del file sostituisce quella della tabella.
- Righe per lotto — numero di righe inserite in ogni istruzione INSERT. Opzioni: 100, 500 o 1000. I lotti più grandi sono più veloci ma consumano più memoria del server.

MySQLMariaDBAurora

Con MySQL e MariaDB vengono offerte tutte e tre le modalità.

PostgreSQL

Con PostgreSQL vengono offerte solo Inserisci e Salta i duplicati: ciò che Calíope può scrivere lì davanti a un duplicato salta la riga, non la sostituisce, quindi Sostituisci i duplicati prometterebbe qualcosa che non succede.

SQL Server

Con SQL Server è possibile solo Inserisci, quindi il selettore non viene mostrato: un duplicato fallisce con il messaggio del server.

Il pannello di log mostra l'avanzamento e il risultato riga per riga.

Disponibile su macOS, iPad e iPhone.

Parole chiave: importare, csv, json, xlsx, excel, caricare dati, import, wizard, mappatura di colonne, foglio di calcolo, INSERT IGNORE, REPLACE, batch, lotto

Generare un backup

Esporta i database e gli oggetti selezionati in un file .sql o .sql.gz senza bloccare l'interfaccia.

Dove si trova: Workspace › Strumenti › Backup

Apri Backup dalla barra di navigazione del workspace. Nel tab Backup, seleziona i database e gli oggetti da includere usando l'albero a sinistra. Configura le opzioni e scegli il file di destinazione. Premi Crea backup.

Elaborazione in background:
Il backup viene eseguito completamente al di fuori del thread principale. L'interfaccia rimane totalmente reattiva mentre il motore esegue il dump dei dati. Il pannello di log in basso mostra l'avanzamento oggetto per oggetto in tempo reale.

Tempo stimato (ETA):
Una volta elaborato il primo oggetto, accanto alla barra di avanzamento appare un contatore del tempo rimanente stimato, calcolato in base alla velocità di dump attuale.

Annullare un backup:
Premi Annulla in qualsiasi momento. Il motore interrompe il dump al termine dell'operazione in corso ed elimina il file parziale dal disco.

macOS: Salva in… sceglie il file nel pannello di salvataggio; al termine, Mostra nel Finder ti porta al file.
iPad: al completamento, appare il pulsante Condividi file per esportare verso l'archivio del dispositivo o iCloud Drive.

Notifica al termine:
Se riduci a icona o cambi app durante un backup lungo, Calíope invia una notifica locale al completamento o in caso di errore. Richiede il permesso di notifiche concesso (macOS: Centro Notifiche; iPad: Impostazioni › Notifiche). Attiva o disattiva questa notifica in Preferenze › Notifiche › Backup manuale in background.

Parole chiave: backup, esportare, mysqldump, sql, background, eta, annullare, avanzamento, notifica

Selezionare gli oggetti per il backup

Scegli quali tabelle, viste, routine e utenti includere.

Dove si trova: Backup › Albero di selezione

L'albero a sinistra mostra ogni database con i suoi tipi di oggetto: Tabelle, Viste, Routine e Trigger, più gli Eventi dove il server li ha. All'apertura dello strumento è tutto selezionato. Seleziona tutti e Deseleziona tutti selezionano o svuotano tutto, e le scorciatoie Tutto, Solo tabelle e Solo struttura selezionano in blocco (Solo struttura disattiva anche Includi i dati); oppure seleziona e deseleziona uno per uno. La sezione Utenti del server permette di includere gli account del server e i loro privilegi nel backup.

L’albero ha inoltre un filtro per nome nell’intestazione e mostra la dimensione stimata accanto a ogni tabella. La casella di ogni database seleziona o deseleziona tutto il suo contenuto, e alla sua destra vedi quanti oggetti hai selezionato su quanti. La sezione Utenti del server sta sotto l’albero, non dentro: gli utenti appartengono al server e non dipendono da alcun database. Un database creato dopo aver aperto lo strumento compare con Aggiorna elenco database nel menu contestuale dell’albero.

SQL Server

Ogni voce dell'albero è un database con uno dei suoi schemi (demo.dbo, demo.rrhh): il backup scrive il database, lo schema e i suoi oggetti.

PostgreSQL

Ogni voce dell'albero è uno schema del database a cui sei connesso: il backup scrive lo schema, le estensioni che usa e i suoi oggetti. Gli oggetti che porta un'estensione — le funzioni di PostGIS, per esempio — non sono elencati: al ripristino, il file ricrea l'estensione.

Parole chiave: selezionare, tabelle, utenti, routine, trigger, backup

Ripristinare da file SQL

Esegue un file .sql o .sql.gz sul server per ripristinare i dati.

Dove si trova: Backup › Tab Ripristina

Nel tab Ripristina, scegli il file con Scegli file…. Sono accettati file .sql e .sql.gz (compressi con gzip); Calíope rileva il formato dal magic number del file, non dall'estensione, quindi rinominare il file non cambia il risultato.

Anteprima: premi Anteprima per ispezionare le prime ~200 righe prima di eseguire. Utile per verificare quali database e istruzioni contiene un dump prima di applicarlo.

Conferma preventiva: premendo Ripristina appare un riepilogo con il numero di istruzioni rilevate e i database interessati (letti dalle istruzioni che li selezionano, li creano o li eliminano). Se lo script contiene istruzioni DROP, il riepilogo avvisa che gli oggetti esistenti verranno eliminati.

SQL Server

Il file è diviso in batch separati da righe GO, e il ripristino taglia solo su quelle righe: il corpo di una procedura con dei ; dentro arriva intero.

PostgreSQL

Il file viene ripristinato nel database a cui sei connesso: i suoi schemi vengono creati lì.

MySQLMariaDBAurora

Un dump di mysqldump o mariadb-dump viene ripristinato come farebbe il client da riga di comando: i suoi commenti eseguibili (/*!40101 … */) arrivano al server, e le colonne binarie esportate grezze, senza --hex-blob, arrivano byte per byte.

Annullamento: durante il ripristino puoi premere Annulla per interrompere l'esecuzione dopo l'istruzione corrente.

Errori: il ripristino gira in un'unica sessione e si ferma al primo errore. Il log indica l'istruzione fallita (l'oggetto e il suo database) con il messaggio del server, e dice a quale istruzione si è fermato.

macOS: il selettore apre la finestra di dialogo standard del Finder.
iPad: il selettore usa il browser di documenti del sistema, con accesso a iCloud Drive e ad app compatibili. Viene generato un bookmark security-scoped per poter rileggere il file dopo la chiusura del picker.

Richiede una connessione attiva: il pulsante è disabilitato se non c'è un server connesso. Un avviso arancione lo segnala.

Parole chiave: ripristinare, restore, importare, sql file, sql.gz, gzip, compresso, script, icloud, selettore di file, anteprima, conferma, annullare

Opzioni del backup

Configura il contenuto, il formato e la compressione del file di backup generato.

Dove si trova: Backup › Sezione opzioni

Nel tab Backup, la sezione delle opzioni permette di regolare cosa include il file generato:

- DROP prima di CREATE — aggiunge DROP TABLE IF EXISTS (o DROP VIEW, DROP PROCEDURE, ecc.) prima di ogni istruzione CREATE. Consigliato per ripristini puliti che sovrascrivono gli oggetti esistenti.
- Includi i dati — aggiunge le istruzioni INSERT con i dati di ogni tabella selezionata. Disattivalo per generare solo lo schema (struttura senza dati).
- Includi la data nel nome — aggiunge la data e l'ora al nome del file; su macOS, al nome che propone Salva in… (ad es. backup_2026-06-05_14-30.sql).
- Includi gli utenti del server — la casella della sezione Utenti del server, sotto l'albero: esporta gli account selezionati lì e i loro privilegi con le istruzioni che li creano e i loro privilegi.
- Includi le password degli utenti — compare quando si includono gli utenti del server. Opzione esplicita disattivata per impostazione predefinita. Quando è disattivata, la password — o il suo hash — viene scritta come '***REDACTED***'. Attivala solo se hai intenzione di ripristinare il file sullo stesso server e sei sicuro che la cartella di destinazione non sia sincronizzata con iCloud Drive, Dropbox o altri servizi.
- Comprimi l'output (.sql.gz) — applica la compressione gzip al file durante la generazione, senza mantenere l'intero SQL in memoria. Il file risultante riduce la dimensione tra il 70 % e l'85 % rispetto al .sql equivalente. La compressione avviene in tempo reale tramite il framework Compression di Apple.

MySQLMariaDBAurora

Gli utenti del server vengono scritti come CREATE USER e GRANT.

SQL Server

Gli utenti del server sono i login: ognuno viene scritto come CREATE LOGIN … WITH PASSWORD = … HASHED, con il suo utente, i suoi ruoli e i suoi permessi in ogni database. DROP prima di CREATE elimina anche, prima, tutti gli oggetti di ogni schema che porta il file.

PostgreSQL

Gli utenti del server sono i ruoli: ognuno viene scritto come CREATE ROLE, e i ruoli predefiniti pg_ solo con i loro privilegi, perché ogni server li ha già. DROP prima di CREATE elimina ogni schema per intero (DROP SCHEMA … CASCADE) prima di ricrearlo.

macOS: Salva in… sceglie il file nel pannello di salvataggio standard.
iPad: al termine del backup, il pulsante Condividi file permette di esportare il .sql o .sql.gz verso qualsiasi destinazione compatibile con il selettore di file del sistema.

Parole chiave: opzioni backup, DROP IF EXISTS, includi dati, includi utenti, schema, struttura, dati, data file, drop before create, comprimere, gzip, sql.gz, compressione

Backup programmati automatici

Configura backup ricorrenti (giornalieri, settimanali, feriali, mensili o ogni N ore) con notifica al completamento.

Dove si trova: Workspace › Strumenti › Backup

Calíope può eseguire i backup automaticamente senza intervento manuale. Per configurarli, apri il pannello di Backup dalla barra laterale del workspace.

Come configurare un backup programmato:
1. Nel tab Programmati del pannello di Backup, premi Nuovo.
2. Dagli un nome e scegli il profilo di connessione (o qualsiasi connessione attiva), la frequenza (giornaliera, settimanale, dal lunedì al venerdì, mensile, ogni N ore o su richiesta), l'ora, la cartella di destinazione e quante copie conservare.
3. L'interruttore della sua riga lo accende e lo spegne.

Un backup programmato copia tutti i database della sua connessione, con DROP prima di CREATE e i dati, senza compressione. Per salvare solo alcuni database, salva una configurazione dal tab Backup e dalle una frequenza con il suo pulsante a matita.

Comportamento:
- Quando l'app è aperta all'ora configurata, il backup viene eseguito in background senza bloccare l'interfaccia.
- Al completamento, riceverai una notifica di sistema con il nome del file e la sua dimensione.
- Se l'app non era aperta all'ora programmata, il backup viene contrassegnato come in sospeso: un banner dice quanti ne sono stati persi, e Esegui ora nella sua riga lo avvia.
- I backup più vecchi vengono eliminati automaticamente al superamento del numero massimo di copie configurato.

Selezione della cartella di destinazione:
Calíope gira in un sandbox rigoroso (requisito dell'App Store). Quando scegli la cartella con Scegli cartella… viene generato un permesso persistente per quel percorso specifico. Se sposti o rinomini la cartella in seguito, l'app ti avviserà che deve essere riselezionata. Modificare il percorso a mano nella scheda non è sufficiente — usa sempre Scegli cartella….

Prestazioni:
I backup programmati usano lo stesso motore di streaming di quelli manuali: scrivono direttamente su disco oggetto per oggetto, senza accumulare l'SQL in memoria. Questo permette di eseguire il backup di database di qualsiasi dimensione senza rischio di esaurimento della RAM o di blocco dell'app.

Disponibile su macOS, iPad e iPhone. Richiede il permesso di notifiche di sistema.

Parole chiave: backup, programmato, automatico, giornaliero, settimanale, notifica, scheduler, pianificazione, background, streaming

Salvare la configurazione come modello (preset manuale)

Riutilizza i parametri di un backup senza pianificarlo. Si eseguono su richiesta con un clic.

Dove si trova: Backup › Tab Programmati

Oltre ai backup automatici (giornalieri, settimanali, feriali, mensili o ogni N ore), il tab Programmati può ospitare modelli manuali: configurazioni salvate con un nome che si eseguono solo quando premi il pulsante Esegui nella loro riga.

Come creare un modello manuale:

1. Nel tab Backup, seleziona cosa salvare e premi Salva come configurazione…, accanto a Crea backup. Il modello conserva la connessione e i database che contengono gli oggetti selezionati (database interi), e viene registrato nel tab Programmati con frequenza "Manuale — su richiesta". La cartella non viene ripresa, perché il file scelto con Salva in… non dà il permesso di scrivere di nuovo nella sua cartella: sceglila con il pulsante a matita (Scegli cartella…) prima della prima esecuzione. Le opzioni sono quelle di ogni backup programmato: DROP prima di CREATE e i dati, senza compressione.
2. In alternativa, in Programmati › Nuovo, scegli l'opzione Senza pianificazione (esegui su richiesta) nel selettore di frequenza.

Differenze visive di un preset manuale:

- Icona bolt.circle.fill indaco (vs. calendar.badge.checkmark verde per i programmati attivi).
- Pulsante primario Esegui sempre visibile nella riga.
- Nessun toggle attivo/inattivo e nessuna "prossima esecuzione" (non si applicano).
- Nessun accumulo di missedRuns (non partecipano al ciclo automatico).

Frequenze disponibili per i backup automatici:

- Giornaliero a un'ora fissa.
- Settimanale un giorno specifico della settimana.
- Lun-Ven (feriali) dal lunedì al venerdì.
- Mensile un giorno specifico (1–28) del mese.
- Ogni N ore contate dall'ultima esecuzione.
- Manuale (su richiesta) — senza pianificazione automatica.

Cronologia delle esecuzioni: il pulsante clock.arrow.circlepath di ogni riga (Vedi cronologia) apre le esecuzioni di quel backup: riuscite, fallite, annullate e saltate. Se non è ancora stato eseguito, lo dice.

Parole chiave: preset, modello, manuale, su richiesta, programmato, frequenza, mensile, feriali, ogni N ore, cronologia, run history