Herramienta de desarrollo

DBCanvas: Diseña tu Base de Datos como si fuera un Miro

Canvas interactivo para diseñar ERDs visualmente y generar migraciones, modelos y factories de Laravel automáticamente — sin escribir código a mano

8 min de lectura
Marzo 2026
Herramienta
Quasar / Vue 3
Vue Flow
Pinia
PWA
Vite
Laravel 12
Vue Router 4

Diseñar el esquema de una base de datos suele empezar de dos formas: escribiendo migrations directamente en código (y rezando para que las FK estén bien) o dibujando cajas en un draw.io genérico que nadie más sabe leer. Ambos enfoques tienen el mismo problema: el modelo mental está en tu cabeza, no en una herramienta que el equipo pueda consultar.

DBCanvas es un canvas interactivo para diseñar diagramas entidad-relación visualmente. Construido con Quasar y Vue Flow, funciona como una PWA instalable y tiene un propósito claro: el diagrama que diseñas no es un PNG, es una fuente de verdad estructurada que la librería laravel-v12-lib-database-designs consume para generar el código de Laravel por ti.

1. El Problema: Diseñar Esquemas de BD es Tedioso

Cuando arrancas un proyecto nuevo, la primera decisión técnica suele ser el modelo de datos. Si empiezas por las migrations, escribes código sin un mapa claro. Si empiezas por un diagrama en una herramienta genérica, terminas con un PNG que se desactualiza a la primera iteración y que no tiene conexión con el código real.

Los errores en foreign keys o constraints suelen descubrirse al momento de correr php artisan migrate — cuando ya llevas horas de trabajo. Y comunicar el modelo al equipo sin un diagrama claro es aún más difícil.

Sin DBCanvas

Diseño en texto: migrations antes de tener el mapa claro
FK mal conectadas que se descubren al correr migrate
Sin contexto visual para comunicar el modelo al equipo
Documentación separada que se desactualiza rápido

Con DBCanvas

Canvas visual con tablas, columnas y relaciones
Relaciones representadas como líneas entre tablas
Columnas con tipos, constraints y comentarios
Notas contextuales para documentar decisiones de diseño

2. La Solución: Un Canvas como Miro pero para Bases de Datos

DBCanvas te da un lienzo infinito donde arrastras tablas, defines columnas con sus tipos y constraints, y conectas relaciones visualmente. Cada tabla es un nodo editable. Las relaciones son líneas que representan foreign keys reales.

Lo que diferencia a DBCanvas de un draw.io o un Miro es que el diagrama no es visual por accidente — es datos estructurados almacenados en base de datos. Esos datos son los que consume la librería Laravel para generar código. El diseño visual y el código generado están sincronizados por definición.

Puedes acceder a DBCanvas en dbcanvas.mangobinario.com.

La interfaz tiene el look de un IDE nocturno: fondo #080a16, acentos en púrpura #8b5cf6, fuente monoespaciada JetBrains Mono y efectos glassmorphism con backdrop-filter: blur(12px). Diseñar el esquema se siente como trabajar en tu editor favorito.

3. Tipos de Nodos

DBCanvas tiene dos tipos de nodos. El foco está en la tabla — que es donde vive toda la lógica del esquema.

Tabla

Nodo principal del diagrama. Define columnas con tipos, PK, nullable, unique, default, comment, enum values e índices. Las conexiones entre tablas representan foreign keys.

Sticky Note

Nota de color libre para documentar decisiones de diseño, marcar áreas del canvas o dejar contexto para el equipo. No genera código.

4. Diseño de Columnas: El Detalle que Importa

La diferencia está en el nivel de detalle que puedes configurar por columna. No es solo "nombre y tipo" — puedes definir todo lo que necesita Laravel para generar una migration limpia.

Tipos disponibles

string
integer
uuid
boolean
timestamps
decimal
enum
json
text
char
double
bigInteger
float
date
dateTime
time
tinyInteger
mediumText
longText
binary

Modificadores por columna

Primary Key (PK)
Nullable
Unique
Default (UI adaptada al tipo)
Comment / descripción
Enum values (solo tipo enum)
Size (solo string / decimal)

La UI se adapta al tipo seleccionado: el campo size solo aparece para string y decimal, los enum values solo se muestran cuando el tipo es enum. Las filas con PK tienen fondo amarillo para identificarlas visualmente. Puedes reordenar columnas con drag & drop dentro del nodo.

5. El Valor Real: El Diagrama como Fuente de Verdad

El diagrama guardado en base de datos es un JSON estructurado de nodos y edges — no un PNG. Eso significa que otras herramientas pueden leerlo y actuar sobre él. Ahí entra laravel-v12-lib-database-designs.

La librería lee el proyecto de DBCanvas y genera automáticamente las migrations, los Eloquent Models y los Factories. El ciclo completo es:

Pipeline completo: de DBCanvas a código Laravel
Diseñas en DBCanvas → guardas el proyecto
↓
php artisan build:migrations:project --project=mi-proyecto
↓
✅ Migrations generadas en storage/app/private/{project}/migrations/
↓
php artisan db:sync-models --project=mi-proyecto
↓
✅ Eloquent Models generados en app/Models/ (Abstract + extensible)
↓
php artisan db:sync-factories --project=mi-proyecto
↓
✅ Factories generadas en database/factories/

La librería no es una herramienta naive de generación de código. Tiene lógica real detrás:

Detección de cambios
Solo genera deltas desde la última corrida. No sobreescribe migrations ya ejecutadas.
Topological sort de FK
Resuelve dependencias circulares entre tablas para generar migrations en el orden correcto.
Modelos en pares
Genera un Abstract base (sobreescribible por la librería) y un modelo hijo para tu lógica custom. Actualizaciones no pisan tu código.
Faker inteligente en Factories
Infiere el faker correcto por nombre de columna: email → unique()->safeEmail(), name → name(), created_at → dateTime(), etc.

6. Funcionalidades de la PWA

DBCanvas es una Progressive Web App instalable. Funciona en el navegador sin instalación y como app nativa en desktop y móvil.

Funcionalidades disponibles
Import/export del diagrama como JSON
Crear tabla desde texto con inferencia de tipos
Zoom y pan (0.2x – 4x)
Soporte i18n: es / en-US
Modo oscuro automático (sistema)
PWA: instalable, funciona offline

Crear tabla desde texto

En lugar de configurar columna por columna, puedes pegar una descripción en texto libre y DBCanvas infiere los tipos automáticamente. Escribe algo como:

users
id
name
email
password
active
ts
sd

7. Retos Técnicos Resueltos









8. Roadmap: La Visión Completa

La visión final de DBCanvas es que puedas hacer click en "Deploy" desde la UI y que el diagrama se despliegue directamente a la base de datos — sin CLI, sin copiar archivos, sin pasos manuales. Estamos construyendo hacia eso por capas.

Disponible

Diseño visual de ERD (tablas, columnas, relaciones)

Disponible

Guardado de diagramas en base de datos

Disponible

Generación de migraciones, models y factories vía artisan

En desarrollo

Panel de administración de proyectos

Roadmap

Compartir diagramas con enlace público (solo lectura)

Visión final

Hacer click en "Deploy" y desplegar el diagrama a la BD

¿Quieres diseñar tu próxima BD con DBCanvas?

Si estás arrancando un proyecto Laravel y quieres tener el modelo de datos claro antes de escribir una sola línea de código, hablemos.

Contáctanos