### Administración - Actualización

¡Aquí es donde puede actualizar la versión actual de su portal a una versión más reciente (o igual) o a la versión de desarrollo (master)!...
Esta actualización se realiza en dos pasos: primero archivos, luego base de datos.

#### Actualización de Archivos

La interfaz, principalmente explicativa, en realidad solo permite la elección de un parámetro: la versión que reemplazará la que está actualmente en servicio en el portal.
La primera pantalla presenta:

- resumen de versiones: versión en servicio en el portal y última versión estable disponible
- un mensaje de estado variable
- una lista desplegable que permite una elección orientada de la versión para preparar la actualización
- el botón `Preparar Actualización` que le permite acceder a la segunda pantalla después de su elección

La segunda pantalla indica recomendaciones preliminares y recordatorios de opciones elegidas o impuestas para la actualización. Contiene dos botones:

- `Volver` ==> (regresar a la primera pantalla) ...
- `Lanzar Actualización` ==> activa una alerta de confirmación javascript (o no) y lanza el procedimiento de actualización en el implementador ...

Ahora se encuentra en la interfaz progresiva de control e información de procesos que duran entre 2 y 3 minutos en total.
En caso de éxito, un botón `Acceder a Administración` le permite regresar a la administración en la pantalla de confirmación de éxito de actualización de archivos.

#### Migración de Base de Datos

Si todo fue bien, ahora tiene acceso al botón `Migrar Base de Datos` que activa una alerta de confirmación javascript (o no) y lanza la migración de la base de datos.
Consejo: Antes de lanzar una actualización, realice una copia de seguridad completa de su base de datos mediante phpMyAdmin o NPDS `/admin.php?op=SavemySQL`.
La siguiente pantalla resume el contexto, el análisis de diferencias estructurales y las consultas generadas que se ejecutarán mediante el botón `Ejecutar Migración` y modificarán la base de datos en servicio...

Una pantalla final mostrará el resultado de la migración de la base de datos y la actualización en su conjunto.

En caso de fallo de migración de la base de datos, un enlace le permitirá reiniciar el procedimiento sin perder los parámetros de actualización.

#### Memo Técnico

- Cada actualización genera automáticamente una copia de seguridad de archivos sensibles (un archivo .zip: file_backup_ seguido de marca de tiempo) disponible en `/lib/deployer/npds_backups/`
- La migración de base de datos es una actualización de la estructura y una actualización de datos en las tablas functions y metalang. Se basa en una comparación de dos archivos que contienen el esquema SQL: el archivo actualmente en uso y el archivo de la nueva versión.
  - para actualización estructural, se generarán consultas UPDATE basadas en la comparación.
  - para actualización de datos de las tablas functions y metalang, se generarán consultas `DELETE/INSERT`. Esta operación preserva sus personalizaciones mientras actualiza el código del sistema. (esta actualización de estas dos tablas es sistemática)
- Todo el procedimiento de actualización del portal es monitoreado y registrado en registros PHP y registros NPDS (`/slogs/install.log`)

NPDS - Manual de Administración