Cette page décrit Calíope 1.5, la version que nous construisons en ce moment. La 1.4 est terminée et en cours d'examen par Apple, et la boutique propose aujourd'hui la 1.3 sur le Mac et la 1.2 sur iPad. Le changelog indique dans quelle version chaque fonction est arrivée.

Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.

Diagramme ER

Générer un Diagramme ER

Visualisez les relations entre les tables d'une base de données.

Où le trouver : Espace de travail › Outils › ER

Ouvrez le Diagramme ER depuis la barre de navigation de l'espace de travail. Sélectionnez la base de données dans le sélecteur supérieur et Calíope chargera les tables avec leurs colonnes et les relations de clé étrangère existantes.

Le diagramme affiche les tables sous forme de nœuds avec les colonnes et les types de données. Les lignes entre les tables représentent les clés étrangères détectées sur le serveur.

Mots-clés : ER, entité relation, diagramme, FK, foreign key, clé étrangère, relations, ERD

Naviguer dans le diagramme (zoom et déplacement)

Zoomez, dézoomez et déplacez la vue du diagramme.

Où le trouver : Diagramme ER › Canvas

Zoomer et dézoomer — sur macOS, la molette de la souris, un pincement à deux doigts sur le trackpad ou les boutons de la barre ; sur iPad, le pincement ou ces mêmes boutons. Le pourcentage entre le et le + de la barre indique l'échelle courante, et les raccourcis sont ⌘−, ⌘+ et ⌘0. Les limites sont les mêmes sur les trois : de 18 % à 400 %, et le bouton s'éteint une fois la limite atteinte.

Déplacer le canevas — faites glisser sur une zone vide, sur les trois. Sur un nœud, le glissement déplace la table.

Revenir au cadrage — le bouton Ajuster à la fenêtre (⌘0) cadre toutes les tables. Le diagramme se recadre aussi tout seul à l'ouverture et lors d'un redimensionnement de la fenêtre.

Le bouton Disposition automatique réorganise les nœuds pour minimiser les chevauchements.

Mots-clés : zoom, déplacement, pan, zoom avant, zoom arrière, canevas, naviguer

Créer une relation FK dans le diagramme

Dessinez une nouvelle relation de clé étrangère entre deux tables.

Où le trouver : Diagramme ER › clic droit › Créer une relation FK

Ouvrez le menu contextuel d'une table — clic droit sur macOS, appui long sur iPad — et sélectionnez Nouvelle relation FK…. Une boîte de dialogue s'ouvre pour choisir la table et la colonne source, ainsi que la table et la colonne cible. Après confirmation, Calíope exécute le ALTER TABLE … ADD FOREIGN KEY sur le serveur.

Uniquement sur macOS, en plus : maintenez ⌃ (Contrôle) et faites glisser d'une table vers la table cible ; une ligne élastique suit le geste et le relâchement ouvre ce même dialogue. Sur iPad, ce geste n'existe pas : la clé étrangère se crée depuis le menu contextuel.

Mots-clés : FK, foreign key, clé étrangère, créer relation, ALTER TABLE, intégrité référentielle

Sauvegarder la disposition du diagramme

Persistez la position des nœuds pour conserver votre disposition entre les sessions.

Où le trouver : Diagramme ER › Enregistrer la disposition

Cliquez sur le bouton Sauvegarder la disposition dans la barre d'outils du Diagramme ER. Les positions actuelles de tous les nœuds de table sont sauvegardées dans UserDefaults sous la clé caliope_er_layout_v1.

La prochaine fois que vous ouvrirez le diagramme pour la même base de données, les nœuds seront restaurés aux positions sauvegardées. Si aucune disposition n'est sauvegardée, le diagramme applique automatiquement la disposition automatique.

Mots-clés : disposition, layout, position, sauvegarder, persister, nœuds, arrangement

Exporter le diagramme ER

Enregistrez le diagramme en SVG ou PDF.

Où le trouver : Diagramme ER › Exporter SVG / PDF

Dans la barre d'outils du Diagramme ER, le bouton d'exportation propose deux formats : SVG (vectoriel, modifiable avec Illustrator ou Inkscape) et PDF (prêt pour l'impression ou la présentation). Le fichier est enregistré à l'emplacement que vous choisissez via la boîte de dialogue système.

Mots-clés : exporter, SVG, PDF, enregistrer, imprimer, diagramme, vectoriel

Voir le DDL depuis le diagramme

Consultez la structure complète d'une table directement depuis le diagramme.

Où le trouver : Diagramme ER › clic droit › Modifier la structure de la table

Ouvrez le menu contextuel d'un nœud de table dans le diagramme — clic droit sur macOS, appui long sur iPad — et sélectionnez Modifier la structure de la table. Un panneau s'ouvre affichant l'instruction CREATE TABLE complète de la table sélectionnée.

Mots-clés : DDL, CREATE TABLE, structure, voir table, show create, définition de table

Comparer des schémas de bases de données

Comparez deux bases de données du même serveur — tables, vues, routines, déclencheurs et événements — et générez le script de migration.

Où le trouver : Espace de travail › Outils › Diff

L'outil de comparaison de schémas (Schema Diff) analyse deux bases de données du même serveur et montre exactement ce qui a changé dans les tables, vues, procédures, fonctions, déclencheurs et événements.

Ouvrir Schema Diff :
Cliquez sur Diff (icône de flèches opposées) dans la barre latérale Outils. L'outil s'ouvre dans un nouvel onglet.

Utilisation de base :
1. Choisissez la BD source et la BD cible dans les sélecteurs de la barre supérieure.
2. Cliquez sur Comparer. Calíope lit le SHOW CREATE … de chaque objet dans les deux bases — la définition canonique écrite par le serveur lui-même.
3. Activez l'option Modifications seulement pour masquer ce qui coïncide.
4. Le rapport est groupé par type d'objet. Dépliez n'importe quelle ligne : une table modifiée montre, changement par changement, la définition actuelle et celle qui la remplacera ; une vue ou une routine modifiée montre les deux définitions complètes ; un objet nouveau ou supprimé montre son DDL.
5. Cliquez sur Copier le SQL pour tout le script, ou sur le bouton de copie d'une ligne pour ce seul objet.

Ce qui est généré pour les tables :
- Un CREATE TABLE IF NOT EXISTS complet pour celles qui manquent dans la source, avec colonnes, index et options.
- DROP TABLE IF EXISTS pour celles qui sont en trop.
- ALTER TABLE avec ADD/DROP/MODIFY COLUMN, en conservant le type, la nullabilité, la valeur par défaut, le commentaire, le jeu de caractères et l'expression d'une colonne générée.
- Ajouts et suppressions de clé primaire, d'index et de contraintes CHECK, ainsi que les changements d'options (ENGINE, DEFAULT CHARSET, COLLATE, ROW_FORMAT, COMMENT).

Ce qui est généré pour le reste :
Une vue ou une routine ne se corrige pas par morceaux : si sa définition diffère, le script la refait (DROP + CREATE) à partir de la cible, en réécrivant les références au schéma d'origine pour qu'elle pointe vers la bonne base.

Ordre du script :
D'abord les tables ; ensuite les clés étrangères, dans leur propre bloc, car lorsque plusieurs tables sont créées l'ordre alphabétique ne respecte pas les dépendances ; puis un USE et les autres objets par type, chaque type ordonné par dépendances — une vue construite sur une autre est émise après elle.

Ignoré à dessein :
Le compteur AUTO_INCREMENT, qui avance à chaque insertion et ne coïncide jamais entre deux copies.

Ce qui n'est pas couvert :
Un changement de partitionnement est détecté et signalé, mais jamais traduit en SQL : repartitionner réécrit toute la table. Les colonnes d'une table existante ne sont pas réordonnées, et une colonne renommée apparaît comme une suppression suivie d'un ajout. Les vues, routines, déclencheurs et événements sont comparés textuellement : un simple changement de mise en forme ou de DEFINER compte comme une différence — et sous MariaDB le DDL d'un déclencheur est le texte littéral avec lequel il a été écrit. Un événement dont l'heure de début diffère est également différent, car cette heure fait partie de sa définition.

Vérifiez toujours le script avant de l'exécuter en production.

Cas d'usage typique :
Comparer le schéma de développement (source) avec la production (cible) avant un déploiement pour générer le script de migration sans l'écrire à la main.

Disponible sur macOS, iPad et iPhone.

Mots-clés : schema diff, comparer, schéma, alter table, migration, différences, ADD COLUMN, DROP COLUMN, MODIFY COLUMN, SHOW CREATE TABLE, CREATE TABLE, index, clés étrangères, partitionnement, modifications uniquement

ERD multi-base : visualiser les relations inter-bases

Ajoutez une deuxième base de données au canevas du diagramme ER pour visualiser les relations entre bases de données.

Où le trouver : Diagramme ER › + BD

Le Diagramme ER peut afficher les tables de deux bases de données simultanément sur le même canevas, y compris les clés étrangères qui traversent d'une base à l'autre.

Comment ajouter une deuxième base de données :
1. Avec le Diagramme ER ouvert, sélectionnez la BD principale dans le sélecteur gauche de la barre d'outils.
2. Cliquez sur le bouton + BD dans la barre d'outils pour ajouter une deuxième base de données.
3. Sélectionnez la deuxième BD dans le nouveau sélecteur qui apparaît.
4. Le canevas se met à jour automatiquement en affichant les tables des deux bases.

Codage couleur :
- En-tête bleu — tables de la BD principale.
- En-tête vert sarcelle (teal) — tables de la deuxième BD.
- Flèches orange — relations de clé étrangère traversant d'une base à l'autre.
- Flèches normales — relations au sein de la même base de données.

Prérequis pour les relations inter-bases :
Les clés étrangères doivent être déclarées dans information_schema. MySQL/MariaDB enregistre les FKs dans information_schema.KEY_COLUMN_USAGE. Si les relations inter-bases n'apparaissent pas, vérifiez que les FKs existent formellement sur le serveur (et ne sont pas de simples conventions de nommage).

Navigation et exportation :
Toutes les fonctionnalités du diagramme ER standard s'appliquent au canevas multi-base : zoom, panoramique, mise en page automatique, enregistrement de la mise en page, exportation SVG/PDF et affichage du DDL des tables. Consultez les rubriques Diagramme ER pour plus de détails.

Disponible sur macOS, iPad et iPhone.

Mots-clés : erd, multi-base, inter-bases, cross-database, relations, deuxième base, foreign key, diagramme, en-tête bleu, en-tête teal, flèches orange