SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) Migraciones — Ruta Comercial

Migraciones

Ejecuta los .sql de app/migraciones/ en orden, desde el navegador
Primer arranque — instala la base de datos

La base de datos está vacía. Ejecuta las migraciones en orden (001 → última) para crear las tablas y sembrar el super admin (superadmin / SuperAdmin-2026!, cámbialo después). La 000_creacion_db.sql se salta (la base ya existe).

Instalar — ejecutar las 15 en orden
#MigraciónContenidoEjecución
1 000_creacion_db.sql CREACION
base de datos
END CREACION
Pendiente Ejecutar
2 001_empresas.sql CREACION
tabla empresas -- tenants del SaaS. Cada empresa opera aislada; el super admin las crea.
END CREACION
Pendiente Ejecutar
3 002_usuarios.sql CREACION
tabla usuarios -- roles WEB (super admin, admin de empresa, supervisor). Los colaboradores
(app movil) tienen su propia tabla `colaboradores` (Fase 1).
Pendiente Ejecutar
4 003_zonas.sql CREACION
tabla zonas -- rotulo organizativo del colaborador (Norte/Sur/Este/Centro), por empresa.
NO es geocerca (ver modulos.md §2b). Solo agrupa/filtra reportes.
Pendiente Ejecutar
5 004_personal_unificado.sql CREACION
Personal unificado: dentro de una empresa NO hay tablas separadas por rol. Todo el personal
(administrador, supervisor, colaborador) vive en `usuarios`, con un `rol` y campos de RRHH
Pendiente Ejecutar
6 005_supervisor_zona.sql CREACION
tabla supervisor_zona -- asignación de zonas a un supervisor (muchos a muchos). Al supervisor
se le asignan una o varias zonas y ve a los colaboradores de esas zonas (no hay vínculo
Pendiente Ejecutar
7 006_zona_sin_zona.sql CREACION
Cada empresa nace con una zona "Sin Zona": todo colaborador que se cree sin zona explícita
queda en ella (no puede haber colaborador sin zona). La zona "Sin Zona" es protegida -- no se
Pendiente Ejecutar
8 007_fase2_puntos_rutas.sql CREACION
Fase 2 -- Puntos + Rutas planificadas.
- `empresas.aprobacion_ruta`: quién aprueba la ruta que planifica quien va a calle.
Pendiente Ejecutar
9 008_aprobacion_ruta_por_persona.sql CREACION
Configuración de rutas/marcación por empresa + aprobación de ruta POR PERSONA.
- `empresas.aprobacion_ruta` = valor con el que NACE cada nuevo usuario;
Pendiente Ejecutar
10 009_plantillas_ruta.sql CREACION
Plantillas de ruta -- POR PERSONA (`usuario_id`, como los puntos). Guardan un conjunto de
puntos habituales ("Lunes zona centro", "Clientes A"); al cargar una plantilla en "Mi ruta de
Pendiente Ejecutar
11 010_marcas.sql CREACION
Fase 3 -- Marcación. El corazón del sistema: cada visita deja una `marca` (hora del SERVIDOR +
GPS del navegador). **Una fila por marca, nunca se actualiza.** Sin límite por día. Se puede
Pendiente Ejecutar
12 011_reconocimiento_facial.sql CREACION
Reconocimiento facial en la marcación (patrón de MiJornada). El navegador extrae con
face-api.js un descriptor de 128 floats en vivo de la cámara; la comparación (distancia
Pendiente Ejecutar
13 012_token_acceso.sql CREACION
Link de acceso rápido para el colaborador. Un token largo por usuario; abrir
`acceso/ir/<token>` inicia su sesión y lo deja directo en "Marcar". Pensado para pegarlo en el
Pendiente Ejecutar
14 013_login_por_empresa.sql CREACION
Login por EMPRESA: el formulario pide RUC de la empresa + usuario + contraseña (el super admin
entra por una pantalla aparte, sin empresa). Con eso el `usuario` (= documento) deja de tener
Pendiente Ejecutar
15 014_ubigeo.sql CREACION
Catalogo de ubigeo (INEI) -- departamentos / provincias / distritos del Peru. Reusado del ERP
(erp_mafort.ttubic_geog); se corrigio la N-tilde que en el ERP estaba como 'Q'. codigo = 6
Pendiente Ejecutar
16 015_puntos_catalogo.sql CREACION
Fase 2 del catalogo de puntos (decision Ytalo 2026-09-05):
- `puntos.aprobacion`: los puntos que crea el admin nacen 'aprobado'; los que PROPONE un
Pendiente Ejecutar