Saltar a contenido

Migraciones

Reglas

  1. Nunca modificar una migración ya publicada.
  2. Toda migración nueva debe ser compatible con el código anterior y el nuevo.
  3. Evitar bloqueos largos en tablas grandes.
  4. Separar cambios destructivos en varias releases.
  5. Probar la migración en una copia de datos representativa.

Patrón recomendado para cambios destructivos

  1. Agregar la columna nueva y escribir en ambas.
  2. Desplegar el código que lee la columna nueva.
  3. Migrar datos.
  4. Dejar de escribir en la columna vieja.
  5. Eliminar la columna vieja en una release posterior.

Antes de migrar

  • Hacer backup o snapshot de la base.
  • Verificar el tamaño de las tablas afectadas.
  • Revisar si la migración requiere índice o constraint pesado.
  • Confirmar que el deploy tiene ventana de mantenimiento si hace falta.

En Laravel

php artisan migrate
php artisan migrate:status

En producción, las migraciones se ejecutan desde el deploy. No ejecutar migrate:fresh ni migrate:rollback sin autorización.

Slots

slots-api y slots-admin comparten el esquema api. slots-admin usa admin_migrations para no chocar con las migraciones de la API.

migrate:fresh en slots-api borra todo el esquema api, incluido el admin. Después hay que volver a migrar y seedear slots-admin.