fix(rutinas): cascade al borrar del catálogo, orden por día y test de migración real

- Changeset 004: ON DELETE CASCADE en fk_routine_assignment_task; borrar
  una rutina del catálogo arrastra sus asignaciones en vez de fallar (test).
- El orderIndex de la asignación multi-día lo calcula el backend al final
  de CADA día destino (antes lo enviaba el front desde el día visible).
- MigrationIT con Testcontainers: el changelog completo y el mapeo JPA se
  verifican contra Postgres 16 real (H2 no detecta su tipado estricto).
- DataSeeder delega en InitialDatasetService: una sola fuente de verdad
  del dataset inicial; la demo solo añade sus extras.
- Eliminado .gitkeep de changes/ (WARN de Liquibase en cada arranque).
This commit is contained in:
Jaume Garriga Maestre
2026-07-12 22:02:22 +02:00
parent 5421080b04
commit 3ec611d373
10 changed files with 202 additions and 81 deletions

View File

@@ -25,11 +25,16 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.liquibase:liquibase-core'
runtimeOnly 'org.postgresql:postgresql'
// H2 solo en test: permite que el contexto cargue sin un Postgres real en la
// Fase 1 (esqueleto). La infraestructura de test realista (Testcontainers)
// se introducirá en la Fase 2, junto con el dominio.
// H2 en test para los tests rápidos de servicio/web. La verificación de las
// migraciones Liquibase y del mapeo JPA (ddl-auto=validate) se hace contra un
// Postgres REAL vía Testcontainers (MigrationIT): H2 no detecta
// incompatibilidades de tipos/SQL propias de Postgres (lección aprendida con
// el CAST(NULL AS INTEGER) del changeset 003).
testRuntimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-testcontainers'
testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.testcontainers:postgresql'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}