Bases de datos

Diagrama ER desde SQL que se mantiene sincronizado con tu esquema

Un diagrama de esquema solo sirve si puedes confiar en él. El truco es dejar de dibujarlo a mano y generar el diagrama ER desde SQL, a partir del esquema que ya despliegas.

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.

pg_dumppegar migrations /live schema CREATE TABLE …DDL canónico ER diagramsiempre al día repite tras cada migración, sin editar a mano
El diagrama es una proyección del esquema. Vuelca el DDL, genera el diagrama ER y repite cada vez que cambie el esquema.

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.

terminal
# 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.
Consejo. Guarda una instantánea del diagrama ER en el mismo PR que la migración que lo cambia. Los revisores ven la forma del cambio, no solo el SQL, y el diagrama y el esquema avanzan juntos por defecto.

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.

Genera un diagrama ER actualizado a partir de tu esquema en vivo

Vuelca el DDL, pégalo en LetDraw y obtén un diagrama editable con relaciones de pata de gallo, actualizado en segundos cada vez que cambie el esquema.

Abrir LetDraw gratis