¿Qué es DBML y por qué convertirlo a SQL?
DBML (Database Markup Language) es un formato de Holistics, usado en la popular herramienta dbdiagram.io. Te deja describir un schema de base de datos en una forma limpia y compacta, sin toda la ceremonia sintáctica de SQL completo.
En DBML escribes `Table users { id integer [pk] name varchar }` en lugar de `CREATE TABLE users (id INTEGER PRIMARY KEY, name VARCHAR(255))`. Más corto, más legible, más fácil de revisar. Pero al final necesitas SQL real para crear tablas en una base de datos real.
Esta herramienta convierte DBML a SQL para PostgreSQL, MySQL o SQLite. Soporta: tablas, columnas con tipos, primary keys, auto-increment, NOT NULL, UNIQUE, defaults, índices, foreign keys (Refs), enums. También muestra errores de parseo con números de línea.
Cómo usarla
- Pega tu schema DBML en el panel izquierdo. El formato sigue dbdiagram.io.
- Elige el dialecto destino: PostgreSQL, MySQL o SQLite. Cada uno tiene sus propios tipos y convenciones.
- A la derecha obtienes CREATE TABLE y ALTER TABLE listos para pegar en una migración o tu base de datos.
- Si hay errores de parseo, la lista aparece debajo con números de línea. Arregla la entrada y la salida se actualiza.
- Copia el resultado con el botón Copiar y pega en tu herramienta de migración, Prisma, Drizzle, Flyway, Liquibase, lo que uses.
- El toggle Formatear resultado pasa la salida por un formateador SQL para indentación limpia. Desactívalo para salida cruda.
Cuándo es útil
Escenarios comunes:
- Diseñar una nueva base de datos desde cero. Empiezas en DBML porque es más rápido capturar ideas que SQL completo. Una vez se asienta el schema, generas CREATE TABLE.
- Sincronizar un diagrama con una migración. Tienes un diagrama en dbdiagram.io (o exportado de otra herramienta) y quieres crear tablas en una base de datos nueva. El conversor acorta ese camino.
- Documentación técnica. DBML es legible para no-ingenieros. SQL es ejecutable. Escribe una vez en DBML, genera SQL para developers y un diagrama para el product manager.
- Revisión de código de schema antes de una migración. Más fácil ver un error en DBML que en muchas líneas CREATE TABLE.
- Aprender SQL. Mira cómo un simple `Table users { id integer [pk] }` se expande a `CREATE TABLE "users" ("id" INTEGER PRIMARY KEY)` completo. Un buen camino de aprendizaje.
Tras generar SQL, quizá quieras formatearlo. ¿Necesitas un schema ORM en su lugar? Mira el conversor SQL a ORM.