#05Intermediate5 min

Generando Migraciones

Crea un checkpoint de tu esquema, realiza cambios y genera archivos de migración SQL que capturan exactamente lo que cambió.

En esta guía

  1. 1Abre el modal de Checkpoints
  2. 2Crea un checkpoint (línea base)
  3. 3Realiza cambios en el esquema
  4. 4Genera la migración
  5. 5Elige tu framework y exporta

Cómo funcionan las migraciones en ER Flow

ER Flow genera migraciones comparando dos snapshots del esquema: la línea base (tu checkpoint) y el estado actual. Detecta cada cambio — nuevas tablas, tablas eliminadas, tablas renombradas, columnas agregadas, columnas modificadas, nuevos índices, nuevas claves foráneas — y genera el código de migración SQL correspondiente.

Actualmente se soportan dos generadores de migración: Laravel (PHP) y Phinx (PHP). Cada uno genera código de migración específico para el framework con métodos up() y down().

Paso 1: Abre el modal de Checkpoints

En la barra de herramientas, haz clic en el ícono de Bandera (Checkpoints). Esto abre el modal de Checkpoints donde puedes gestionar tus checkpoints de esquema y generar migraciones.

Paso 2: Crea un checkpoint (línea base)

Haz clic en "Crear Checkpoint" y dale un nombre (por ejemplo, "Esquema inicial", "v1.0", "Antes de refactorizar usuarios"). Opcionalmente agrega una descripción.

Un checkpoint captura un snapshot completo de tu esquema actual — todas las tablas, columnas, índices, claves foráneas, triggers y procedimientos. Este snapshot se almacena en el servidor y sirve como línea base para futuros diffs.

Debes crear un checkpoint:

  • Antes de comenzar una nueva funcionalidad o refactorización
  • Después de aplicar una migración a producción (para marcar el estado actual)
  • En cualquier punto donde quieras un "punto de guardado" contra el que hacer diff

Paso 3: Realiza cambios en el esquema

Con tu checkpoint guardado, realiza los cambios que necesites:

  • Agrega nuevas tablas y columnas
  • Renombra tablas o columnas
  • Cambia tipos de columna, valores predeterminados o restricciones
  • Agrega o elimina índices
  • Crea o elimina claves foráneas
  • Agrega triggers o procedimientos

Cada cambio queda registrado. Cuando generes una migración, ER Flow comparará tu esquema actual con el checkpoint y detectará todas las diferencias.

Paso 4: Genera la migración

Vuelve al modal de Checkpoints y selecciona el checkpoint contra el que quieres hacer diff. Haz clic en "Generar Migración". ER Flow ejecuta el motor de diff y te muestra:

Panel izquierdo — Cambios Detectados: - Un resumen de todas las operaciones (tablas creadas, columnas agregadas, índices modificados, etc.) - Una lista detallada de cada operación individual - Advertencias para posibles problemas (por ejemplo, eliminar una columna con datos)

Panel derecho — Código Generado: - El código de migración up() (qué ejecutar para avanzar) - El código de migración down() (cómo hacer rollback)

El motor de diff detecta estos tipos de operaciones: table.create, table.drop, table.rename, column.add, column.drop, column.rename, column.modify, index.add, index.drop, fk.add, fk.drop, pk.set.

Paso 5: Elige tu framework y exporta

En la parte inferior del modal de migración, puedes cambiar entre generadores:

Laravel: Genera una clase de migración estándar de Laravel con Schema::create(), Schema::table(), $table->string(), $table->foreign(), etc. Incluye métodos up() y down().

Phinx: Genera una clase de migración de Phinx con $this->table(), ->addColumn(), ->addIndex(), ->addForeignKey(), etc.

Puedes:

  • Copiar al portapapeles — pégalo directamente en tu código fuente
  • Descargar — guarda como archivo .php con un nombre generado
  • Aplicar — marca el esquema actual como la nueva línea base (actualiza el checkpoint), de modo que la próxima migración solo capture los cambios a partir de este punto

Después de descargar o copiar la migración, agrégala al directorio de migraciones de tu proyecto y ejecútala con el comando de migración de tu framework (por ejemplo, php artisan migrate para Laravel).