Todo diagrama de esquema empieza siendo cierto y acaba mintiendo. Alguien lo dibuja la semana antes del lanzamiento, se gana un lugar destacado en la wiki y luego el producto sale. Veinte migraciones después sigue mostrando una tabla users sin deleted_at, una tabla orders que desde entonces se dividió en dos y una relación que desapareció en una refactorización en marzo. Los ingenieros nuevos lo leen, se lo creen y construyen sobre el dibujo de una base de datos que ya no existe.
La reacción habitual es la culpa: deberíamos haberlo mantenido actualizado. Pero actualizar a mano un diagrama después de cada migración es una tarea en la que nadie gana, así que nunca se hace. La solución duradera es cambiar de dónde sale el diagrama. Si se genera a partir del esquema en lugar de mantenerse al lado, la desincronización deja de ser posible, porque el dibujo siempre es una vista de la verdad actual.
Trata el diagrama como algo derivado, no como algo que se escribe
Tu esquema ya vive en un lugar canónico: las migraciones que ejecutas y el DDL que puedes volcar desde cualquier entorno. Esa es la fuente de verdad, y es legible por máquinas. Un diagrama mantenido a mano es una segunda copia de esa verdad, y dos copias de cualquier cosa acaban divergiendo. Así que la jugada es convertir el diagrama en una proyección del esquema, igual que un informe es una proyección de una tabla: se regenera bajo demanda y nunca se edita hasta quedar obsoleto.
En la práctica eso significa que, cada vez que quieras el dibujo actual, metes el esquema actual y obtienes el diagrama. Sin conciliación manual, sin "quién tocó esto por última vez", sin relaciones obsoletas.
Genera el diagrama entidad relación a partir del DDL que ya vuelcas
No necesitas una exportación especial. Cualquier base de datos puede darte su esquema como SQL, y ese SQL es exactamente lo que lee LetDraw. En Postgres es un solo comando; MySQL y otras tienen sus propios equivalentes.
# Postgres: dump just the schema, no data pg_dump --schema-only --no-owner mydb > schema.sql # then: Generate from Code → paste schema.sql → get the ER diagram
Abre el diálogo Generar desde código, pega el archivo y LetDraw construye el diagrama: tablas con columnas tipadas, claves primarias y foráneas marcadas, y líneas de uno a muchos trazadas a partir de las cláusulas REFERENCES con sus puntas de pata de gallo. Lo que antes costaba una tarde arrastrando rectángulos ahora es pegar, y como sale del DDL real, es correcto por construcción.
Un diagrama que regeneras en diez segundos nunca queda obsoleto, porque nadie tiene que acordarse de actualizarlo.
Intégralo en el flujo de trabajo para que nunca se desincronice
Cuando generar el diagrama sale barato, puedes ponerlo donde se mantenga honesto. Algunos hábitos que hacen que la desincronización sea estructuralmente imposible:
- Regenera en cada release. Añade "actualizar el diagrama ER desde
schema.sql" a tu checklist de release. Se tarda más en leer esta frase que en hacerlo. - Compara, no redibujes. Cuando llegue una migración, genera un diagrama nuevo y compáralo. Tabla nueva, columna nueva, clave cambiada: el cambio es visible, y conservas las anotaciones que añadiste a mano en las partes que no se movieron.
- Limítalo al cambio. En una revisión, pega solo las tablas que se están discutiendo. Un diagrama ER enfocado de seis tablas, demostrablemente actual, vale más que un póster de cuarenta tablas que quizá lo sea.
- Guárdalo también como código. Convierte el diagrama de nuevo en Mermaid o D2 y haz commit junto a la migración, para que el dibujo viaje con el cambio en el mismo pull request.
El sentido de un diagrama de esquema es la confianza
Un diagrama de esquema solo se gana su lugar cuando la gente lo cree sin comprobarlo. La forma de ganarse esa confianza no es la disciplina; es eliminar el paso humano que falla. Genera el dibujo a partir del DDL que ya mantienes, actualízalo cada vez que el esquema cambie, y el diagrama deja de ser una pieza de museo para convertirse en algo que el equipo realmente consulta. Correcto por construcción, actual por defecto.
Vuelca tu esquema, pégalo una vez y comprueba cuánto se parece tu modelo mental a la base de datos que de verdad estás ejecutando.