ADR-0001 · Migraciones organizadas en subdirectorios numerados ejecutados por grupos¶
- Estado: aceptado
- Decisores:
- Fecha de la decisión: 2023-10 (aprox., primer subdirectorio en git; retroactivo)
Contexto y problema¶
El esquema tiene decenas de tablas con dependencias entre sí (proveedores →
productos de proveedor → matching → productos unificados → canales). Laravel
ejecuta las migraciones de database/migrations/ en orden de timestamp, pero el
proyecto necesitaba agrupar la creación de tablas por capas de dependencia y
poder ejecutarlas de forma controlada.
Opciones consideradas¶
- Subdirectorios numerados (
00,01, ...72) ejecutados en orden conphp artisan migrate --path=database/migrations/NN. - Migraciones planas estándar de Laravel ordenadas solo por timestamp.
Decisión¶
Se eligió la opción 1: cada subdirectorio agrupa tablas de una misma capa, y
las carpetas se ejecutan secuencialmente (la 01 crea tablas que necesita la
02, y así sucesivamente). El procedimiento completo está en
desarrollo local.
Consecuencias¶
Positivas¶
- El orden de dependencias entre tablas queda explícito y agrupado.
- Se puede aplicar el esquema por etapas en entornos nuevos.
Negativas / deuda asumida¶
php artisan migrateymigrate:fresha secas no recrean el esquema (solo ven la raíz dedatabase/migrations/). Todo tooling que asuma el layout estándar de Laravel se rompe: fue un factor del incidente de julio 2026 dondeRefreshDatabaseen tests dejó la base dev vacía (incidente 2026-07).- Levantar una base desde cero requiere ejecutar ~70 carpetas a mano o con un script; no hay comando único.