DevToolKits.app
Historia de Desarrollo

La historia detrás de la conversión de SQL a diagrama ER: compromiso con la ejecución solo en el navegador

Descubra los antecedentes de nuestra herramienta de SQL a ER y los desafíos técnicos de equilibrar la seguridad con la conveniencia.

Ilustración de la herramienta de SQL a ER

Antecedentes: Desesperación de un lunes por la mañana

“¿Alguien conoce el panorama general de este sistema?”.

En una reunión al comienzo de la semana, esas palabras que pronuncié fueron recibidas con el silencio de todo el equipo.
Lo que teníamos a mano era una base de datos gigante que, a lo largo de varios años, se había convertido en una especie de “salsa secreta” transmitida de generación en generación. No había un diagrama ER actualizado por ningún lado; la única “verdad” era el código activo (DDL).

La tarea requería abrir cada definición de tabla en un editor y construir manualmente las relaciones en la cabeza.
“Ah, esto no está conectado por user_id, en realidad es owner_id…”. Cada vez que hacía un descubrimiento como ese, sentía que mi precioso tiempo como ingeniero se desvanecía.

“Si tan solo pudiera pegar el SQL y que saliera un hermoso diagrama ER al instante”.

Con ese pensamiento, busqué herramientas existentes. Algunas me generaban dudas de seguridad al pedirme que “subiera el SQL a un servidor”, mientras que otras requerían “instalar software especializado”, lo cual no encajaba con mi necesidad de algo que pudiera usar ahora mismo.

Mi orgullo como ingeniero no me permitía enviar la información de diseño de un proyecto altamente confidencial a un servidor desconocido. “Un generador de diagramas ER 100% seguro que funcione al instante, solo en el navegador”. Decidir crear la herramienta que yo mismo deseaba más que nadie fue el comienzo del desarrollo de nuestro Convertidor de SQL a diagrama ER.

Desafíos técnicos: luchando en el “entorno solitario” del navegador

Analizar SQL utilizando solo JavaScript en el navegador, sin usar potentes librerías del lado del servidor, fue una serie de tareas más arduas de lo que había previsto.

1. La persecución interminable de los “dialectos de SQL”

SQL tiene “dialectos” como MySQL y PostgreSQL.
Al principio pensé: “Las sentencias CREATE TABLE son probablemente todas iguales”, pero una vez que comencé la implementación, surgió una montaña de patrones: notación detallada en las definiciones de columnas, restricciones en línea y más.

Reescribía una expresión regular, la probaba y luego veía cómo se rompía con un patrón de SQL diferente.
Repitiendo ese ciclo muchas veces, desarrollé gradualmente un analizador que podía “entender los sentimientos del SQL”.

2. Mermaid.js, el salvador

¿Cómo convertir los datos analizados en un “diagrama”? El que resolvió este difícil problema fue Mermaid.js.
Al establecer esta herramienta, que los ingenieros suelen usar en Markdown, como motor, se completó una línea de conversión limpia de “SQL → datos intermedios → notación Mermaid → SVG”.

erDiagram
    USER ||--o{ POST : writes
    USER {
        string username
        string email
    }

Gracias a este sistema, los usuarios no solo podían guardar el diagrama como una imagen, sino también copiar el código generado y usarlo directamente en la documentación de GitHub, lo que generaba un beneficio adicional.

Una “obsesión” con la seguridad

Lo único en lo que no podía ceder con esta herramienta era en “evitar que los datos salieran del navegador”.
Durante el desarrollo, me sentí tentado muchas veces por el pensamiento de que “sería más fácil procesar esto en el lado del servidor”, pero cada vez me detenía pensando: “Esa no es la herramienta que quiero usar”.

No se produce ninguna comunicación. Por lo tanto, puedes pegar DML o DDL confidenciales sin dudarlo.
Creo que esta sensación de seguridad es el valor esencial de la herramienta.

Conclusión

El convertidor de SQL a diagrama ER es una herramienta nacida de mi propio sentimiento de “esto es una molestia”.
A lo que los desarrolladores deberían enfrentarse originalmente no es al borrador final de un documento, sino al diseño de un sistema mejor.

No podría estar más feliz si esta herramienta llega a alguien perdido en sus pensamientos porque “no hay un diagrama de diseño” y le proporciona un rayo de luz.
Ahora, pega el SQL que tengas a mano y comienza a “verificar tus respuestas” para tu diseño.

Related Tools

Anuncio

Anuncio