Diseño de Bases de Datos en Cursor AI: Guía Completa con ER Flow
Cursor + MCP Server de ER Flow es el flujo de trabajo de diseño de bases de datos más productivo disponible hoy. Aquí está la configuración paso a paso y los prompts que realmente funcionan.
Cursor se ha convertido en el IDE preferido para desarrolladores que quieren IA profundamente integrada en su flujo de trabajo de codificación. Entiende toda tu base de código, puede escribir y refactorizar código en múltiples archivos y mantiene el contexto a lo largo de una larga conversación. Pero el enfoque predeterminado de Cursor para el diseño de bases de datos siempre ha tenido una brecha: genera archivos de migración y código de modelos, pero no tienes una imagen visual del esquema que se acumula en esos archivos.
ER Flow llena esa brecha. Al conectar Cursor a ER Flow a través del MCP Server, cada cambio de base de datos que hace Cursor aparece instantáneamente en un canvas de diagrama ER visual. Obtienes la velocidad del desarrollo asistido por IA con la claridad de una herramienta de diseño de bases de datos de propósito específico. El esquema siempre es visible, siempre es preciso y siempre está sincronizado con lo que tu IA está construyendo.
Por Qué Cursor + ER Flow es una Combinación Poderosa
El problema central del diseño de bases de datos solo con IA es la visibilidad. Cuando le pides a Cursor que "agregue un sistema de notificaciones", genera un archivo de migración. Pero no puedes ver cómo las nuevas tablas se relacionan con tu esquema existente sin analizar mentalmente el SQL de migración. Si pides tres funcionalidades seguidas, rápidamente pierdes el rastro de la estructura general y si el diseño acumulado es coherente.
ER Flow proporciona la capa visual que les falta a las herramientas de IA. Cuando Cursor llama a las herramientas MCP de ER Flow, las tablas aparecen en el canvas con sus columnas, tipos y relaciones dibujadas como líneas de conexión. Puedes ver todo el esquema de una vez, detectar inconsistencias inmediatamente y pedirle a Cursor que las corrija — todo sin salir de tu entorno de desarrollo o cambiar a una ventana de diagramación separada.
Configuración Paso a Paso
Empieza abriendo tu proyecto ER Flow y navegando a Configuración → MCP Server. Copia la URL de MCP Server de tu proyecto y la clave API. Estas son únicas para tu proyecto — cualquiera con esta clave puede modificar tu esquema, así que trátala como una credencial de base de datos.
En la raíz de tu proyecto, crea o edita .cursor/mcp.json. Agrega una entrada para erflow con type: "sse", la URL del proyecto (https://app.erflow.io/mcp/YOUR_PROJECT_ID/sse) y un encabezado Authorization: Bearer YOUR_API_KEY. Abre la Configuración de Cursor y asegúrate de que la función MCP esté habilitada. Reinicia Cursor para cargar la nueva configuración MCP. Verás "erflow" aparecer en la sección de herramientas disponibles del panel de IA, con todas las herramientas de esquema listadas.
Construyendo un Esquema de Nueva Aplicación desde Cero
La mejor manera de experimentar el flujo de trabajo Cursor + ER Flow es diseñar un esquema para una nueva aplicación desde cero. Abre el chat de Cursor, asegúrate de que las herramientas MCP de ER Flow estén activas y empieza con una descripción de alto nivel de tu dominio.
Ejemplo de prompt: *"Estoy construyendo una herramienta SaaS de gestión de proyectos. Necesito tablas para: organizaciones (los inquilinos), usuarios (que pertenecen a organizaciones), proyectos (propiedad de organizaciones), tareas (dentro de proyectos), asignaciones de tareas (muchos a muchos entre tareas y usuarios), comentarios en tareas, archivos adjuntos en tareas y comentarios, y etiquetas que se pueden aplicar a tareas. Sigue estas convenciones: todos los PKs son UUIDs, todas las tablas tienen timestamps created_at y updated_at, usa org_id como nombre de columna de clave foránea de inquilino. Lee el esquema actual primero, luego crea todo en una sola operación en lote."*
Cursor lee el esquema actual de ER Flow vía get-data-model-dbml, entiende tus convenciones tanto del prompt como del esquema existente, luego emite una sola llamada batch-operations que crea todas las tablas con las claves foráneas, tablas de unión, índices y timestamps correctos. Todo el esquema aparece en tu canvas de ER Flow en segundos — listo para revisión visual.
Cómo Cursor Lee el Esquema Existente Antes de Hacer Cambios
Antes de hacer cualquier cambio, Cursor llama a get-data-model-dbml para leer tu esquema actual como DBML. Este es un paso crítico que previene el error más común de diseño de bases de datos con IA: crear una tabla que ya existe, agregar una columna con un tipo conflictivo o construir una relación que contradice una restricción existente.
Puedes confiar en este comportamiento diciéndole explícitamente a Cursor que lea el esquema primero: *"Lee el esquema actual antes de hacer cualquier cambio."* Esto es especialmente importante después de haber estado diseñando manualmente en ER Flow y luego cambias a pedirle a Cursor que extienda el esquema. La IA lee tu estado actual — incluyendo cualquier cambio manual — y diseña adiciones que encajan naturalmente en lo que existe.
Operaciones en Lote para Velocidad y Consistencia
La herramienta batch-operations es tu primitiva de rendimiento más importante. En lugar de crear cada tabla y relación en solicitudes separadas, Cursor agrupa todo en una sola operación atómica. Esto importa por dos razones: velocidad (un solo viaje de red en lugar de muchos) y consistencia (el esquema nunca está en un estado parcial donde algunas tablas existen pero sus objetivos de clave foránea referenciados aún no).
Pídele explícitamente a Cursor que use operaciones en lote al diseñar tablas interconectadas: *"Crea todas estas tablas en una sola operación en lote para que las referencias de clave foránea estén todas definidas juntas."* Esto produce resultados más limpios — sin estados transitórios de FK inválida y un solo paso de deshacer si quieres revertir toda la funcionalidad.
Generando Migraciones desde ER Flow
Una vez que tu esquema se vea correcto en el canvas de ER Flow, usa el generador de migraciones de ER Flow para producir migraciones específicas del framework. ER Flow soporta migraciones de Laravel (clases PHP usando la API fluente del Schema builder) y Phinx (la biblioteca de migración usada por CakePHP y muchos proyectos PHP independientes). También puedes exportar SQL plano compatible con cualquier cliente de base de datos.
El flujo de trabajo es: diseña en Cursor + ER Flow, revisa en el canvas visual, crea un checkpoint en ER Flow (una instantánea nombrada del esquema actual), luego genera la migración desde el checkpoint. Si ya has ejecutado migraciones desde un checkpoint anterior, ER Flow genera solo el diff — los cambios desde el último checkpoint — en lugar de todo el esquema como una sola migración monolítica.
Prompts que Funcionan Bien
Algunos patrones de prompts producen consistentemente excelentes resultados en el flujo de trabajo Cursor + ER Flow. Para nuevas funcionalidades: *"Lee el esquema actual. Agrega [descripción de funcionalidad]. Sigue las convenciones de nomenclatura existentes. Usa operaciones en lote. Crea índices en todas las columnas de clave foránea y en columnas por las que filtré frecuentemente."* Para refactorización: *"Lee el esquema actual. La tabla orders tiene demasiadas columnas. Divide los campos de dirección de envío en una tabla separada order_addresses con una relación uno a uno de vuelta a orders."* Para patrones comunes: *"Agrega soporte de soft delete (un timestamp deleted_at) a las tablas users, projects y tasks."* Para auditoría: *"Agrega una tabla audit_logs con soporte polimórfico que pueda rastrear cambios a users, projects y tasks, con índices para consultar por registro y por usuario."*
Consejos y Mejores Prácticas
Mantén ER Flow abierto en una pestaña del navegador mientras trabajas en Cursor. La retroalimentación visual es inmediata — ves los cambios aparecer en el canvas a medida que Cursor los aplica. Esto te permite detectar errores de diseño en tiempo real en lugar de después de que la migración se haya generado y confirmado.
Crea checkpoints de ER Flow junto con los commits de git. El sistema de checkpoints de ER Flow crea instantáneas nombradas de tu esquema. Crea un checkpoint cada vez que completes una funcionalidad y nómbralo igual que tu rama de git o ticket de issue. Esto crea un rastro de auditoría claro que vincula los cambios de esquema con los cambios de código, y hace que sea trivial generar una migración incremental para exactamente el trabajo realizado en esa rama de funcionalidad.
Describe tus convenciones una vez, de forma prominente. Pon tus convenciones de nomenclatura, estrategia de clave primaria y requisitos de columna estándar (tenant_id, timestamps, soft deletes) al principio de tu primer prompt de Cursor. Cursor aplica estas convenciones a todos los cambios posteriores en la conversación. También puedes mantener una breve nota de convenciones en tu diagrama de ER Flow, que Cursor lee cuando llama a get-data-model-dbml — haciendo que tus estándares sean visibles tanto en el diagrama como en la conversación de IA.
La combinación de la comprensión de la base de código de Cursor y la capa visual de bases de datos de ER Flow crea un flujo de trabajo de desarrollo donde el esquema siempre es visible, siempre es preciso y siempre está sincronizado con el código de tu aplicación. Es lo más cercano a tener un arquitecto de bases de datos dedicado disponible en todo momento — uno que conoce toda tu base de código, aplica las mejores prácticas automáticamente y visualiza cada decisión en un canvas compartido que todo tu equipo puede ver.