Herramienta gratuita
MySQL y MariaDB a diagrama ER
Pega un archivo de mysqldump o un script de MySQL Workbench, con sus comillas invertidas, opciones ENGINE y comentarios de versión, y obtén un diagrama ER de las tablas y las claves foráneas. Los volcados de MariaDB se leen igual. Prueba el ejemplo de tienda con productos, variantes, pedidos y reseñas.
Resultado de ejemplo
Cómo funciona
Pega o suelta tu volcado de MySQL
La salida de mysqldump o mariadb-dump, una exportación de Workbench o phpMyAdmin, o el texto CREATE TABLE que muestra SHOW CREATE TABLE.
Mira las tablas y sus vínculos
Cada tabla se convierte en una tarjeta con sus columnas y claves. Las claves foráneas, tanto las declaradas como restricciones como las escritas en línea con REFERENCES, se convierten en líneas entre las columnas correspondientes.
Ábrelo en Archboard
Guárdalo como un diagrama nuevo para reorganizarlo, anotarlo, compartir un enlace o exportarlo en SVG y PNG. Para registrarte basta una cuenta de Google o GitHub.
Saca el esquema de base de datos de MySQL
Ejecuta esto y luego pega schema.sql o suelta el archivo:
--no-data deja fuera las filas, y --skip-comments y --compact quitan la cabecera de comentarios y las líneas DROP TABLE, LOCK TABLES y SET NAMES. Sustituye mydb por el nombre de la base de datos y añade -u y -p si hace falta. En MariaDB, mariadb-dump admite las mismas opciones.
mysqldump --no-data --skip-comments --compact mydb > schema.sql
Sintaxis de MySQL en un volcado
Qué pasa con cada construcción de un archivo de mysqldump:
`order_items`- Se lee. Los nombres entre comillas invertidas coinciden con los mismos nombres escritos sin ellas, y los nombres entre comillas dobles también funcionan cuando el volcado activa ANSI_QUOTES.
ENGINE=InnoDB- Se omite junto con DEFAULT CHARSET, COLLATE y las demás opciones de tabla; la tabla en sí se lee.
AUTO_INCREMENT- No se muestra: la columna conserva su tipo, como INT UNSIGNED. El contador AUTO_INCREMENT que aparece después de la tabla también se ignora.
REFERENCES products (id)- Se dibuja como relación. MySQL anterior a 9.0 acepta esta forma en línea sin aplicarla, así que la vista previa añade una nota cuando encuentra una.
KEY idx_name (name)- Un índice normal, así que no añade ninguna marca. UNIQUE KEY se marca como UK, y KEY escrito justo después de una columna significa clave primaria, como en MySQL.
/*!40101 … */- Se tratan como comentarios y se omiten, incluidas las líneas SET con las que mysqldump rodea cada tabla.
DELIMITER ;;- Se entiende: los procedimientos y funciones entre líneas DELIMITER se omiten enteros y se cuentan, y las tablas que vienen después se siguen leyendo. Los disparadores y eventos que mysqldump escribe ahí van dentro de comentarios de versión, así que se omiten como comentarios.
ENUM (…) · SET (…)- Se muestran como tipos de columna enum y set; los valores permitidos no se listan.
Lo que un diagrama de MySQL deja fuera
- Procedimientos almacenados, funciones, disparadores y eventos; ninguno se dibuja. La vista previa cuenta los procedimientos y las funciones; los disparadores y eventos que mysqldump escribe dentro de comentarios de versión se omiten como comentarios.
- Todo lo que va dentro de comentarios de versión como /*!50100 PARTITION BY … */. Ese texto cuenta como comentario, así que el particionado y otras opciones ligadas a una versión no aparecen.
- Las filas de los INSERT extendidos. Se omiten sin leerse, aunque una sola línea INSERT ocupe varios megabytes.
- Lo que viene de un servidor MySQL o MariaDB en marcha. No se abre ninguna conexión, así que no se muestran recuentos de filas, tamaños de tabla ni ajustes del servidor.
Preguntas sobre MySQL y MariaDB
¿Qué comando de mysqldump funciona mejor?
mysqldump --no-data --skip-comments --compact mydb > schema.sql da solo las sentencias CREATE TABLE, sin filas ni las líneas que las envuelven. Un volcado completo también sirve: las sentencias INSERT se omiten, así que el diagrama es el mismo y solo cambia el tamaño del archivo.
¿Funciona con MariaDB?
Sí. MariaDB escribe el mismo formato de volcado, así que elige MySQL / MariaDB o deja que la detección lo haga. La salida de mariadb-dump, los nombres entre comillas invertidas y AUTO_INCREMENT se leen igual que en MySQL, y las REFERENCES en línea se dibujan como relaciones sin importar qué servidor escribió el archivo.
¿Por qué una REFERENCES en línea recibe una nota?
En MySQL 8 y versiones anteriores, una REFERENCES escrita justo después de una columna se acepta pero se ignora: no se crea ninguna clave foránea. A partir de MySQL 9.0 sí se crea. El diagrama dibuja la relación en ambos casos, porque el script la declara, y la nota te recuerda comprobar si la base de datos tiene de verdad esa clave.
¿Puedo pegar scripts de Workbench o migraciones en vez de un volcado?
Sí. Un script generado con ingeniería directa en MySQL Workbench, un volcado de esquema de Laravel, un structure.sql de Rails o DDL escrito a mano funcionan. Las sentencias que cambian tablas después, como ALTER TABLE … ADD CONSTRAINT … FOREIGN KEY o ADD COLUMN, se aplican a las tablas que nombran.
¿Se guarda algo al pegar un volcado de MySQL?
La vista previa no se guarda. Cuando eliges Abrir en Archboard, el diagrama dibujado, con sus tarjetas de tabla, nombres y tipos de columna y líneas de relación, se guarda como un diagrama nuevo en tu espacio de trabajo. Los cambios que hagas después en el esquema de MySQL no lo actualizan.
¿La herramienta de diagramas ER para MySQL es gratuita?
Sí. Pegar un volcado y ver el diagrama no requieren cuenta. Para abrir el diagrama en Archboard basta una cuenta gratuita.
Abre un lienzo en un minuto
Inicia sesión con Google o GitHub. Gratis para un asiento. Mejora el plan cuando se una el equipo.