Esta página describe Calíope 1.5, la versión que estamos construyendo ahora mismo. La 1.4 está terminada y en revisión de App Store, y la tienda sirve hoy la 1.3 en el Mac y la 1.2 en iPad. 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.
El asistente de Importación de datos te permite insertar filas en una tabla MySQL/MariaDB a partir de un archivo externo, sin necesidad de escribir SQL manualmente.
Cómo abrir el asistente:
En el Árbol de esquema, haz clic derecho sobre una tabla y selecciona "Importar datos…". Se abre el asistente de importación con esa tabla como destino.
Paso 1 — Seleccionar archivo:
- Pulsa Elegir archivo y selecciona un archivo .csv, .json o .xlsx.
- CSV — el separador de columnas se detecta automáticamente (, o ;).
- JSON — debe ser un array de objetos ([{"col": valor}, …]).
- Excel (.xlsx) — se lee la primera hoja del libro. Nota: el soporte de .xlsx lee el archivo como ZIP y extrae la hoja XML; no se necesita ninguna librería de terceros.
- Activa "Primera fila contiene encabezados" si la primera fila define los nombres de columna (activado por defecto).
Paso 2 — Mapear columnas:
- La tabla de mapeo muestra cada columna del archivo a la izquierda y un selector de columna de destino a la derecha.
- Selecciona "— Ignorar —" en cualquier columna del archivo que no deba importarse.
- Calíope intenta detectar automáticamente las coincidencias por nombre.
Paso 3 — Opciones de importación:
- Elige el modo de inserción (ver tema Modos de importación).
- Ajusta el tamaño de lote (predeterminado: 500 filas por INSERT). Lotes más grandes son más rápidos pero consumen más memoria en el servidor.
- Pulsa Importar para iniciar. Una barra de progreso muestra el avance fila a fila.
- Al finalizar, se muestra el número de filas insertadas y los errores, si los hay.
El Paso 2 del asistente te permite controlar exactamente cómo se asignan las columnas del archivo a las columnas de la tabla MySQL.
Funcionamiento del mapeo:
- Cada fila de la tabla de mapeo representa una columna del archivo de origen.
- El selector de la derecha muestra las columnas disponibles en la tabla de destino.
- Calíope intenta hacer coincidir los nombres automáticamente (ignorando mayúsculas/minúsculas).
Ignorar columnas:
Selecciona "— Ignorar —" en el selector de una columna de origen para excluirla de la importación. Esto es útil cuando el archivo tiene más columnas que la tabla, o cuando alguna columna no debe importarse (p. ej., IDs autogenerados).
Columnas sin coincidencia automática:
Si el archivo tiene una columna cuyo nombre no coincide con ninguna columna de la tabla, aparecerá con el selector en "— Ignorar —" por defecto. Asígnala manualmente si corresponde.
Primera fila como encabezado:
Si activaste "Primera fila contiene encabezados" en el paso anterior, los nombres del archivo provienen de esa primera fila y se usan para el mapeo automático. Si está desactivado, las columnas del archivo se numeran (Columna 1, Columna 2, …).
Recomendación:
Antes de importar, verifica que todas las columnas NOT NULL sin valor DEFAULT tengan una columna de origen asignada; de lo contrario, el servidor rechazará las filas afectadas.
En el Paso 3 del asistente de importación puedes elegir cómo debe comportarse el servidor cuando una fila importada entra en conflicto con una clave primaria o única existente.
INSERT (predeterminado):
Inserta cada fila normalmente. Si una fila viola una restricción de clave única o primaria, la importación falla en esa fila y el lote se cancela. Usa este modo cuando los datos no deben tener duplicados y quieres detectar conflictos.
INSERT IGNORE:
Inserta cada fila normalmente, pero si una fila viola una restricción de clave, la omite silenciosamente y continúa con la siguiente. Los errores de clave duplicada no detienen la importación. Útil para importaciones tolerantes a duplicados o cuando ya existe un subconjunto de los datos en la tabla.
REPLACE:
Si una fila tiene la misma clave primaria o única que una fila existente, elimina la fila existente e inserta la nueva. Equivale a un DELETE seguido de INSERT. Útil para actualizar datos existentes con versiones más recientes del archivo. Ten en cuenta que REPLACE puede afectar a triggers de DELETE y restablece columnas con DEFAULT si no están en el archivo.