Skip to content

Commit 1bdc837

Browse files
committed
Document canonical migrations through 011
1 parent cff856f commit 1bdc837

1 file changed

Lines changed: 29 additions & 9 deletions

File tree

‎db/README.md‎

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,44 @@
11
# Base de datos Pescamar
22

3-
PostgreSQL/Neon es la fuente única para operaciones reales. `001_core.sql` crea el núcleo de proveedores, recepciones, liquidaciones, anticipos, recuperaciones, aprobaciones y operadores.
3+
PostgreSQL/Neon es la fuente única para operaciones reales. Las migraciones versionadas bajo `db/migrations/` son la fuente canónica del esquema.
44

5-
## Migraciones
5+
## Migraciones canónicas
66

7-
Para una instalación administrada manualmente, ejecutar en orden:
7+
Ejecutar siempre en orden:
88

99
```bash
1010
psql "$DATABASE_URL" -f db/migrations/001_core.sql
1111
psql "$DATABASE_URL" -f db/migrations/002_settlement_workflow.sql
1212
psql "$DATABASE_URL" -f db/migrations/003_operator_auth.sql
1313
psql "$DATABASE_URL" -f db/migrations/004_reception_plant_evidence.sql
1414
psql "$DATABASE_URL" -f db/migrations/005_auth_abuse_audit.sql
15+
psql "$DATABASE_URL" -f db/migrations/006_historical_production.sql
16+
psql "$DATABASE_URL" -f db/migrations/007_live_lot_memory.sql
17+
psql "$DATABASE_URL" -f db/migrations/008_dispatches_sales.sql
18+
psql "$DATABASE_URL" -f db/migrations/009_sales_orders_inventory_daily_close.sql
19+
psql "$DATABASE_URL" -f db/migrations/010_transformation_costs.sql
20+
psql "$DATABASE_URL" -f db/migrations/011_reception_evidence_files.sql
1521
```
1622

17-
`002_settlement_workflow.sql` incorpora peso guía, cálculo de liquidaciones y recuperación auditable de anticipos. `003_operator_auth.sql` agrega credenciales individuales, alcance por planta y sesiones. `004_reception_plant_evidence.sql` vincula cada nueva recepción a una planta y agrega evidencia documental trazable. `005_auth_abuse_audit.sql` incorpora límites de intentos y una bitácora mínima de autenticación sin almacenar IP ni correo en texto claro.
23+
No deben agregarse migraciones en otra carpeta. Cualquier cambio de esquema nuevo continúa la secuencia en `db/migrations/`.
1824

19-
La migración 004 es aditiva. Las recepciones históricas pueden conservar `plant_id` nulo hasta que exista evidencia suficiente para asignarlas sin inventar procedencia. Por seguridad, esas filas heredadas sólo son visibles para Administración mientras no tengan planta confirmada.
25+
### Alcance
2026

21-
Las funciones operacionales ejecutan compatibilidad idempotente mínima para las estructuras aditivas de 004 y 005 si aún no existen. Las migraciones versionadas siguen siendo la fuente canónica y deben aplicarse explícitamente en una operación de mantenimiento para instalar todos los constraints e índices documentados.
27+
- `001_core.sql`: núcleo operacional de proveedores, recepciones, créditos, liquidaciones, aprobaciones e importación.
28+
- `002_settlement_workflow.sql`: peso guía, liquidaciones y recuperación auditable de anticipos.
29+
- `003_operator_auth.sql`: credenciales individuales, alcance por planta y sesiones.
30+
- `004_reception_plant_evidence.sql`: planta y evidencia documental para recepción.
31+
- `005_auth_abuse_audit.sql`: límites de intentos y auditoría de autenticación sin IP/correo en texto claro.
32+
- `006_historical_production.sql`: producción histórica canónica.
33+
- `007_live_lot_memory.sql`: memoria/eventos vivos del lote.
34+
- `008_dispatches_sales.sql`: despachos y ventas trazables por lote.
35+
- `009_sales_orders_inventory_daily_close.sql`: órdenes, inventario y cierre diario.
36+
- `010_transformation_costs.sql`: ledger de costos reales de transformación por lote.
37+
- `011_reception_evidence_files.sql`: almacenamiento interno de archivos de evidencia de recepción.
38+
39+
La migración 004 es aditiva. Las recepciones históricas pueden conservar `plant_id` nulo hasta que exista evidencia suficiente para asignarlas sin inventar procedencia; esas filas heredadas permanecen restringidas a Administración mientras no tengan planta confirmada.
40+
41+
Las funciones operacionales pueden ejecutar compatibilidad idempotente mínima para estructuras aditivas, pero eso no sustituye las migraciones versionadas. Producción debe mantenerse alineada con esta secuencia canónica.
2242

2343
## Seguridad de acceso
2444

@@ -32,9 +52,9 @@ La interfaz de acceso incluye **Activación inicial** para crear el primer admin
3252

3353
- sólo funciona mientras no exista un administrador activo con credenciales;
3454
- aplica de forma idempotente el esquema de autenticación;
35-
- si falta el esquema 002, sólo lo completa automáticamente cuando recepciones, liquidaciones, anticipos, movimientos y aprobaciones están vacíos;
36-
- si detecta datos operacionales, se detiene y exige aplicar `002_settlement_workflow.sql` manualmente antes de continuar.
55+
- sólo completa automáticamente compatibilidad aditiva segura;
56+
- se detiene si una actualización estructural requiere una migración canónica explícita.
3757

3858
Después de crear el primer administrador, `ADMIN_SETUP_TOKEN` deja de servir para la administración cotidiana. Altas y cambios de operadores requieren una sesión individual con rol Administrador.
3959

40-
No existe un *seed*: el sistema inicia vacío y sólo recibe datos respaldados por la operación real o por una importación auditada de la planilla canónica.
60+
No existe un seed productivo: el sistema sólo recibe datos respaldados por operación real o por una importación auditada de la fuente canónica.

0 commit comments

Comments
 (0)