Migraciones¶
Reglas¶
- Nunca modificar una migración ya publicada.
- Toda migración nueva debe ser compatible con el código anterior y el nuevo.
- Evitar bloqueos largos en tablas grandes.
- Separar cambios destructivos en varias releases.
- Probar la migración en una copia de datos representativa.
Patrón recomendado para cambios destructivos¶
- Agregar la columna nueva y escribir en ambas.
- Desplegar el código que lee la columna nueva.
- Migrar datos.
- Dejar de escribir en la columna vieja.
- 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:freshenslots-apiborra todo el esquemaapi, incluido el admin. Después hay que volver a migrar y seedearslots-admin.