# SIHO PMS MASTER RC22 — Despliegue controlado a SIHO LAB

Esta guía está diseñada para HostGator/cPanel sin terminal.

## Regla principal

No reemplazar `.env`, no borrar `storage`, no borrar `bootstrap/cache` y no cambiar permisos existentes.

## 1. Respaldo obligatorio

1. En Administrador de archivos, comprimir la carpeta completa de SIHO LAB.
2. En phpMyAdmin, exportar la base completa en formato SQL.
3. Guardar ambos archivos con fecha y hora.
4. Confirmar que el ZIP y el SQL se pueden descargar.

## 2. Preparar mantenimiento

Activar el modo de mantenimiento disponible en el hosting o restringir temporalmente el acceso al subdominio de laboratorio. No hacer este procedimiento en Hotel Sol ni en una instalación productiva.

## 3. Cargar RC22

1. Subir el ZIP a una carpeta temporal fuera de la carpeta pública.
2. Extraerlo.
3. Copiar el contenido sobre la instalación de SIHO LAB.
4. No copiar ni reemplazar `.env`.
5. Conservar las carpetas `storage` y `bootstrap/cache` de la instalación.
6. Confirmar permisos de escritura en `storage` y `bootstrap/cache`.

## 4. Base de datos

Aplicar solamente los parches pendientes y en el orden indicado en `01_ORDEN_PARCHES.md`.

Antes de cada parche:

- seleccionar la base correcta de SIHO LAB;
- revisar que no sea una base productiva;
- conservar el respaldo SQL;
- ejecutar el archivo completo una sola vez;
- guardar captura o exportación del resultado.

## 5. Validación

Cuando exista acceso a Artisan, ejecutar:

```bash
php artisan siho:install-preflight --production
php artisan siho:integrity-audit --json=storage/app/integrity-audit.json
php artisan siho:lab-certify --production
```

Sin terminal, completar manualmente `02_CHECKLIST_CERTIFICACION.md` y conservar evidencias.

## 6. Liberación

Sólo retirar mantenimiento cuando:

- inicia sesión Administración;
- abre el dashboard sin error 500;
- se confirma la versión RC22;
- la base responde;
- no existen hallazgos críticos;
- se completó el ciclo operativo de laboratorio.

## 7. Rollback

Ante un error crítico:

1. Volver a activar mantenimiento.
2. Restaurar el ZIP previo completo.
3. Restaurar el respaldo SQL previo si se aplicaron parches.
4. Conservar logs y capturas del fallo.
5. No intentar corregir directamente una base parcialmente actualizada.
