6.1 KiB
Validación de Docker y migraciones de BD
Fecha: 17 de octubre de 2026.
Resultado funcional
- MariaDB de desarrollo preparada en
127.0.0.1:3308, con volumen persistente. El puerto por defecto 3307 estaba ocupado por otro proyecto y no se modificó. - Configuración local nueva en
infrastructure/database/.env, con credenciales generadas, permisos 0600 y exclusión de Git. No se reescribieron los.envexistentes del servidor, worker, frontend o tests. - Las 30 tablas del baseline y su historial están aplicados y verificados.
- El backend arrancó con el usuario de aplicación y respondió 200 en readiness. Se detuvo el proceso temporal de validación; la base local permanece disponible.
- Se verificó persistencia tras
down/upcon una fila de prueba, eliminada después. - Se comprobó que el usuario de aplicación no puede ejecutar DDL ni modificar el historial de migraciones.
- La cancelación durante el aprovisionamiento eliminó el proyecto temporal.
- Las instancias temporales de migraciones, HTTP, E2E y generación del baseline se limpiaron. No se ejecutó SQL sobre producción ni sobre bases anteriores.
Comprobaciones correctas
| Comando o comprobación | Resultado |
|---|---|
pnpm typecheck:db |
Correcto: motor, catálogo, contrato, snapshot y tests de historial |
pnpm test:db |
10 pruebas correctas, incluida CLI compilada, DDL parcial, recuperación y permisos |
pnpm --filter @erp/factuges-server build |
Correcto; incluye database-cli.js y catálogo |
pnpm --filter @erp/factuges-worker build |
Correcto |
pnpm db:dev:up |
Correcto en el puerto local 3308 |
pnpm db:migrate |
Correcto; baseline aplicado y permisos locales configurados |
pnpm db:verify |
Correcto, sin diferencias ni migraciones pendientes |
pnpm db:dev:down y pnpm db:dev:up |
Correcto; datos de prueba persistidos |
PORT=43002 pnpm --filter @erp/factuges-server dev |
Backend listo, readiness 200; proceso detenido después |
node --env-file=apps/server/.env.e2e --import tsx tests/e2e/support/smoke-e2e-bootstrap.ts |
Correcto: esquema, cuenta, compañía, membership, rol y onboarding E2E |
bash -n infrastructure/database/initialize-development.sh scripts/ci/check-database.sh |
Correcto |
git diff --check |
Correcto |
Tests dirigidos ejecutados:
node --import tsx --test \
modules/core/src/api/infrastructure/database/migration-history.test.ts \
modules/core/src/api/modules/module-runtime.test.ts \
apps/server/src/testing/e2e/prepare-e2e-schema.test.ts \
tests/e2e/support/e2e-contract.test.ts \
tests/e2e/support/e2e-lifecycle.test.ts
Resultado: los cinco archivos pasan. Biome también se comprobó sobre los archivos TypeScript y JSON modificados con el siguiente comando:
pnpm exec biome check \
modules/core/src/api/infrastructure/database/migration* \
modules/core/src/api/infrastructure/database/schema-contract.ts \
modules/core/src/api/infrastructure/database/index.ts \
modules/core/src/api/modules/module-runtime* \
modules/core/tsconfig.database.json \
apps/server/src/infrastructure/database \
apps/server/src/testing/database \
apps/server/src/testing/e2e/prepare-e2e-schema* \
apps/server/src/testing/http/http-test-runtime.ts \
apps/server/src/testing/http/run-http-tests.ts \
apps/server/src/config/database.ts \
apps/server/src/config/env-schema.ts \
apps/server/tsup.config.ts \
apps/worker/src/index.ts \
scripts/dev/database.ts scripts/dev/run-local-server.ts \
scripts/testing/run-unit-tests.ts \
package.json apps/server/package.json modules/core/package.json \
tests/e2e/support/e2e-database-environment.ts \
tests/e2e/support/run-e2e.ts
Comprobaciones con fallos preexistentes o limitaciones
| Comando | Resultado observado |
|---|---|
pnpm typecheck |
Falla por errores de sintaxis en el mapper de supplier-invoices, sin cambios en ese archivo |
pnpm --filter @erp/factuges-server typecheck |
Falla por problemas existentes de rootDir, tipos y código de otros módulos; no se afirma compilación global correcta |
pnpm lint |
84 errores, 132 avisos y 953 informaciones en el repositorio; la comprobación dirigida del cambio pasa |
pnpm test:unit |
246 archivos correctos y 38 fallidos, de 284 seleccionados |
pnpm test:http |
37 pruebas correctas y 10 fallidas, de 47 |
pnpm test:e2e |
Esquema y bootstrap preparados; Playwright no pudo continuar porque el puerto 5173 ya estaba ocupado |
Para separar regresiones de deuda anterior se reconstruyó HEAD en un directorio
temporal a partir de archivos versionados, sin copiar .env locales. Con las
dependencias instaladas se reprodujeron exactamente los mismos conjuntos de
38 fallos unitarios y 10 fallos HTTP: no aparecieron fallos nuevos en estos conjuntos.
Los tests HTTP fallidos afectan a fixtures/permisos de Companies, Customers y Suppliers.
La prueba manual del worker llegó a la verificación correcta del esquema, pero
falló después al construir Identity: su composición neutral sigue accediendo a
config.auth.jwt, ausente en WorkerConfig. Es un problema preexistente ajeno al
versionado; no se han añadido credenciales ficticias ni se afirma que el worker
arranque correctamente. Se detuvo el proceso de prueba. Su comando de desarrollo
existente se conserva.
pnpm test:database:ci no se ejecutó como bloque porque repite las comprobaciones
anteriores y quedaría detenido por los fallos HTTP conocidos. Cada fase relevante
se ejecutó por separado. No se ejecutó un build global de frontend ni se desplegó
ningún artefacto.
Pendientes operativos
- Liberar el puerto 5173 y completar la suite E2E de navegador.
- Corregir la deuda previa de TypeScript, Biome y tests antes de declarar verdes las validaciones globales.
- Corregir la composición/configuración neutral de Identity utilizada por el worker.
- Obtener inventario y configuración efectivos de producción; ensayar reconciliación y adopción en una copia con backup verificado. Las bases existentes deben adoptarse antes de arrancar esta versión, que rechaza esquemas sin historial compatible.
- Conectar
test:database:cial proveedor de CI utilizado por el proyecto.