Esta página describe Calíope 1.5, la versión que estoy construyendo ahora mismo. La 1.4 ya está en la App Store para Mac, iPad, iPhone, Apple Watch, Apple TV y Apple Vision Pro. El changelog dice en qué versión llegó cada función.

Añade un botón «Abrir en Calíope» a cada tema. Sólo funciona con la app instalada.

Diagrama ER

Generar Diagrama ER

Visualiza las relaciones entre tablas de una base de datos.

Dónde está: Espacio de Trabajo › Herramientas › ER

Abre el Diagrama ER desde la barra de navegación del workspace. Selecciona la base de datos en el selector superior y Calíope cargará las tablas con sus columnas y relaciones de clave foránea existentes.

El diagrama muestra las tablas como nodos con columnas y tipo de dato. Las líneas entre tablas representan las FKs detectadas en el servidor.

SQL Server

En SQL Server cada esquema es una entrada del selector (demo.dbo, demo.rrhh). Para ver una clave foránea que cruza de esquema, añade el otro con + BD: la línea entre los dos sale en ámbar, como entre dos bases.

Palabras clave: ER, entidad relación, diagrama, FK, foreign key, relaciones

Navegar el diagrama (zoom y pan)

Acerca, aleja y desplaza la vista del diagrama.

Dónde está: Diagrama ER › Canvas

Ampliar y reducir — en macOS, la rueda del ratón, el pellizco de dos dedos en el trackpad o los botones de la barra; en iPad, el pellizco o esos mismos botones. Entre el − y el + de la barra va el porcentaje, que dice a qué escala estás, y los atajos son ⌘−, ⌘+ y ⌘0. Los límites son los mismos en las tres: del 18 % al 400 %, y el botón se apaga al llegar al tope.

Desplazar el lienzo — arrastra sobre una zona vacía, en las tres. Sobre un nodo, el arrastre mueve la tabla.

Volver al encuadre — el botón Ajustar a la ventana (⌘0) encuadra todas las tablas. El diagrama se encuadra además solo al abrirse y al cambiar el tamaño de la ventana.

El botón Disposición automática reorganiza los nodos para minimizar solapamientos.

Palabras clave: zoom, pan, desplazar, acercar, alejar, canvas

Crear relación FK en el diagrama

Dibuja una nueva relación de clave foránea entre dos tablas.

Dónde está: Diagrama ER › clic derecho › Crear relación FK

Abre el menú contextual de una tabla —clic derecho en macOS, mantener pulsado en iPad— y selecciona Nueva relación FK…. Se abre un diálogo para elegir la tabla y columna de origen, y la tabla y columna de destino. Al confirmar, Calíope ejecuta el ALTER TABLE … ADD FOREIGN KEY en el servidor.

Sólo en macOS, además: mantén pulsada ⌃ (Control) y arrastra desde una tabla hasta la de destino; mientras dura el gesto se dibuja una línea elástica y al soltar se abre ese mismo diálogo. En iPad el gesto no existe, y la clave foránea se crea desde el menú contextual.

Palabras clave: FK, foreign key, crear relación, ALTER TABLE, clave foránea

Guardar layout del diagrama

Conserva la disposición que le diste al diagrama, una por base de datos.

Dónde está: Diagrama ER › Guardar layout

Pulsa Guardar layout en la barra de herramientas del Diagrama ER. A dónde arrastraste cada tabla se guarda por base de datos, así que cada diagrama conserva la suya.

La próxima vez que abras el diagrama de esa base, las tablas vuelven a donde las dejaste. Una tabla sin posición guardada —las de una segunda base que acabas de añadir con + BD, o una creada desde entonces— se reparte en una rejilla al lado de las demás, nunca encima.

Palabras clave: layout, posición, guardar, persistir, nodos, disposición

Exportar diagrama ER

Guarda el diagrama como imagen PNG o como PDF.

Dónde está: Diagrama ER › Exportar

En la barra de herramientas del Diagrama ER, el botón Exportar ofrece dos formatos: PNG (una imagen, lista para pegar en un documento o en un chat) y PDF (listo para impresión o presentación). Cada uno ofrece tres tamaños, y el archivo se guarda en la ubicación que elijas con el diálogo del sistema.

Los mismos formatos están en el menú contextual del lienzo, y en macOS el diagrama también se puede imprimir con ⌘P.

Palabras clave: exportar, PNG, PDF, imagen, guardar, imprimir, diagrama

Ver DDL desde el diagrama

Consulta la estructura completa de una tabla directamente en el diagrama.

Dónde está: Diagrama ER › clic derecho › Editar estructura de tabla

Abre el menú contextual de un nodo de tabla en el diagrama —clic derecho en macOS, mantener pulsado en iPad— y selecciona Editar estructura de tabla. Se abre un panel con el CREATE TABLE completo de la tabla seleccionada.

Palabras clave: DDL, CREATE TABLE, estructura, ver tabla, show create

Comparar esquemas de bases de datos

Compara dos bases de datos del mismo servidor —tablas, vistas, rutinas, triggers y eventos— y genera el script de migración.

Dónde está: Espacio de Trabajo › Herramientas › Comparar esquemas

La herramienta de comparación de esquemas (Schema Diff) analiza dos bases de datos del mismo servidor y muestra exactamente qué ha cambiado en tablas, vistas, procedimientos, funciones y triggers.

MySQLMariaDBAurora

En MySQL y MariaDB compara también los eventos.

SQL Server

En SQL Server cada lado es un esquema de una base (demo.dbo), y los dos pueden vivir en bases distintas del mismo servidor.

PostgreSQL

En PostgreSQL cada lado es un esquema de la base conectada (demo, ventas).

Cómo abrir Schema Diff:
Pulsa Comparar esquemas (ícono de flechas contrapuestas) en la barra lateral. Se abre en una nueva pestaña.

Uso básico:
1. Elige el Origen y el Destino en la barra superior. El guion cambia el origen hasta que coincida con el destino: lo que sólo tiene el destino se crea en el origen, y lo que sólo tiene el origen se elimina.
2. Pulsa Comparar. Calíope lee la definición de cada objeto en los dos lados, tal como la escribe el propio servidor.
3. Activa el toggle Solo cambios para ocultar lo que coincide.
4. El informe se agrupa por tipo de objeto. Despliega cualquier fila: en una tabla modificada verás cambio por cambio la definición que hay y la que quedará; en una vista o rutina modificada, las dos definiciones completas enfrentadas; en un objeto nuevo o eliminado, su DDL.
5. Pulsa Copiar SQL para llevarte el guion entero, o el botón de copiar de una fila para llevarte solo ese objeto.
6. Ejecútalo en el Editor SQL con Ejecutar Script. Con el Modo Seguro activado, el guion se detiene antes de llegar al servidor. Después vuelve a comparar: los dos lados deben salir idénticos.

MySQLMariaDBAurora

Las definiciones son el SHOW CREATE … de cada objeto, y el editor entiende los bloques DELIMITER con los que llegan rutinas y triggers.

SQL Server

Las definiciones salen del catálogo (sys.sql_modules para vistas, rutinas y triggers). Cada vista, rutina y trigger va en su propio EXEC … sp_executesql, porque T-SQL lo quiere solo en su lote, así que el guion corre sin líneas GO.

PostgreSQL

Las definiciones son las que escribe el servidor con pg_get_viewdef, pg_get_functiondef y pg_get_triggerdef.

Qué genera para las tablas:

MySQLMariaDBAurora

- CREATE TABLE IF NOT EXISTS completo para las que faltan en el origen, con columnas, índices y opciones.
- DROP TABLE IF EXISTS para las que sobran.
- ALTER TABLE con ADD/DROP/MODIFY COLUMN conservando tipo, nulabilidad, valor por defecto, comentario, juego de caracteres y expresión de columna generada.
- Altas y bajas de clave primaria, índices y restricciones CHECK, y cambios de opciones (ENGINE, DEFAULT CHARSET, COLLATE, ROW_FORMAT, COMMENT).

SQL Server

- IF OBJECT_ID(…) IS NULL CREATE TABLE para las que faltan en el origen, con columnas, claves y restricciones, y un CREATE INDEX por cada índice.
- DROP TABLE IF EXISTS para las que sobran.
- ALTER TABLE con ADD, ALTER COLUMN y DROP COLUMN; antes de quitar una columna, el guion quita la restricción de valor por defecto que cuelga de ella.
- Altas y bajas de clave primaria, índices y restricciones CHECK.

PostgreSQL

- CREATE TABLE IF NOT EXISTS para las que faltan en el origen, con columnas y restricciones, y un CREATE INDEX por cada índice.
- DROP TABLE IF EXISTS para las que sobran.
- ALTER TABLE con ADD COLUMN, DROP COLUMN y ALTER COLUMN … TYPE, SET/DROP NOT NULL y SET/DROP DEFAULT.
- Altas y bajas de clave primaria, índices y restricciones CHECK, y el comentario de la tabla (COMMENT ON TABLE).

Qué genera para el resto de objetos:
Una vista o una rutina no se puede parchear por partes: si su definición difiere, el guion la rehace con la del destino, reescribiendo las referencias al esquema de origen para que apunte al sitio correcto.

MySQLMariaDBAurora

La rehace con DROP + CREATE.

SQL Server

La rehace con CREATE OR ALTER, que aceptan vistas, procedimientos, funciones y triggers.

PostgreSQL

La rehace con CREATE OR REPLACE; un trigger o una vista materializada, que no lo tienen, se eliminan y se vuelven a crear.

Orden del guion:
Primero las tablas; después las claves foráneas, en su propio bloque, porque al crear varias tablas el orden alfabético no respeta las dependencias; luego el resto de objetos por tipo, y dentro de cada tipo ordenados por dependencias — una vista construida sobre otra se emite después de ella.

MySQLMariaDBAuroraSQL Server

Antes del primer objeto que no es una tabla, el guion fija la base activa con un USE.

PostgreSQL

Antes de las tablas van los tipos propios del esquema, con los que se declaran sus columnas.

Lo que se ignora a propósito:

MySQLMariaDBAurora

El contador de AUTO_INCREMENT, que avanza con cada inserción y nunca coincide entre dos copias.

SQL ServerPostgreSQL

El valor actual de una columna de identidad, que avanza con cada inserción y nunca coincide entre dos copias.

Lo que no cubre:
Las columnas de una tabla existente no se reordenan, y una columna renombrada se ve como una baja más un alta. La comparación de vistas, rutinas y triggers es textual, así que un simple cambio de formato cuenta como diferencia.

MySQLMariaDBAurora

Un cambio de particionado se detecta y se anota como aviso, pero no se convierte en SQL: reparticionar reescribe la tabla entera. Un cambio de DEFINER también cuenta como diferencia, y en MariaDB el DDL de un trigger es el texto literal con el que se escribió. Un evento con hora de inicio distinta también difiere, porque esa hora forma parte de su definición.

PostgreSQL

Los tipos propios —ENUM, dominios, tipos compuestos— se comparan como una vista, en su propio grupo Tipos. El guion crea los que faltan antes de las tablas que los usan y elimina al final del todo los que sólo tiene el origen. Un ENUM que sólo ha ganado etiquetas al final se actualiza con ALTER TYPE … ADD VALUE; cualquier otro cambio de un tipo queda en el guion como una nota para hacerlo a mano, porque rehacer un tipo en uso obliga a reescribir cada columna que lo usa. Los tipos que crea una extensión, como los de PostGIS, quedan fuera: los trae su CREATE EXTENSION.

Revisa siempre el script antes de ejecutarlo en producción.

Caso de uso típico:
Antes de un despliegue, comparar producción (origen) con el esquema de desarrollo (destino): el guion lleva producción a lo que desarrollo ya tiene, sin escribirlo a mano.

Disponible en macOS, iPad e iPhone.

Palabras clave: schema diff, comparar, esquema, alter table, migración, diferencias, ADD COLUMN, DROP COLUMN, MODIFY COLUMN, SHOW CREATE TABLE, CREATE TABLE, índices, claves foráneas, particionado, solo cambios

ERD multi-base: visualizar relaciones cross-database

Añade una segunda base de datos al canvas del diagrama ER para visualizar relaciones entre bases de datos.

Dónde está: Diagrama ER › + BD

El Diagrama ER puede mostrar tablas de dos bases de datos simultáneamente en el mismo canvas, incluyendo las claves foráneas que cruzan de una base a otra.

Cómo añadir una segunda base de datos:
1. Con el Diagrama ER abierto, selecciona la BD principal en el selector izquierdo de la barra de herramientas.
2. Pulsa el botón + BD en la barra de herramientas para añadir una segunda base de datos.
3. Selecciona la segunda BD en el nuevo selector que aparece.
4. El canvas se actualiza automáticamente mostrando las tablas de ambas bases.

Codificación de colores:
- Cabecera azul — tablas de la BD principal.
- Cabecera verde azulado (teal) — tablas de la segunda BD.
- Flechas naranja — relaciones de clave foránea que cruzan de una base a otra.
- Flechas normales — relaciones dentro de la misma base de datos.

Requisito para relaciones cross-database:
Las claves foráneas deben estar declaradas en information_schema. MySQL/MariaDB registra las FKs en information_schema.KEY_COLUMN_USAGE. Si las relaciones entre bases no aparecen, verifica que las FKs existen formalmente en el servidor (no son solo convenciones de nombres).

Navegación y exportación:
Todas las funciones del diagrama ER normal aplican al canvas multi-base: zoom, pan, auto-layout, guardar layout, exportar PNG/PDF y ver DDL de tablas. Consulta los temas de Diagrama ER para más detalles.

Disponible en macOS, iPad e iPhone.

Palabras clave: erd, multi, cross-database, relaciones, segunda base, foreign key, diagrama, multi-base, cabecera azul, cabecera teal, flechas naranja