Actualización

Una nueva versión siempre se extrae en un directorio separado. No debe copiarse sobre la instalación existente ni extraerse directamente allí. El nuevo update.sh actualiza después exactamente la instancia indicada como argumento.

Preparación y copia de seguridad

Antes de cada actualización debe existir una copia de seguridad completa y verificada. Debe incluir al menos:

  • El directorio completo de la instancia, especialmente core/config/QisutuConfig.pm

  • var/secure/security.key

  • La base de datos

  • Personalizaciones propias de Apache, proxy, TLS y systemd

  • Si procede, adjuntos externos o ubicaciones de almacenamiento conectadas

security.key es indispensable para restaurar secretos cifrados de correo, OAuth y autenticación de dos factores. Guárdelo protegido junto con la copia de seguridad correspondiente de la instancia.

Preparar el nuevo paquete de la aplicación

Extraiga el paquete de Qisutu 2.0.2 en un directorio temporal independiente, no en la instancia en funcionamiento. Después acceda al directorio extraído que contiene update.sh. El ejemplo utiliza la estructura descrita en INSTALL.md; adapte la ruta a la ubicación real de la extracción.

cd /tmp/qisutu-neue-version/qisutu

Iniciar la actualización

Instancia de producción:

sudo ./update.sh /opt/qisutu

Instancia adicional:

sudo ./update.sh /opt/qisututest

El actualizador lee var/install/instance.conf y muestra antes de la confirmación la ruta de instalación, el identificador de instancia, la ruta web, la base de datos y el servicio systemd. Cancele si alguno de estos valores no corresponde a la instancia deseada.

Proceso de actualización

El script realiza, entre otros, los siguientes pasos:

  1. Comprobación de sumas de verificación de la versión, versiones, archivo de esquema, sintaxis de Perl y registro de programas.

  2. Creación opcional de un volcado adicional de la base de datos. Compruebe antes el espacio libre en /var/backups.

  3. Activación del modo de mantenimiento, detención del daemon de la instancia y bloqueo de nuevas recuperaciones de correo.

  4. Actualización de todos los archivos de programa administrados por la versión; se añaden archivos nuevos y se eliminan archivos administrados que ya no se publican.

  5. Conservación de archivos locales de la instancia, configuraciones, registros, datos de ejecución y clave de seguridad.

  6. Comparación del esquema de base de datos y ejecución de todas las migraciones SQL y Perl aún no registradas.

  7. Nueva comprobación del estado objetivo e inicio del daemon.

Comprobación posterior

Tras finalizar correctamente, compruebe:

systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today

A continuación, inicie sesión, compruebe las versiones mostradas de Qisutu y de la base de datos, y pruebe al menos el inicio de sesión, la vista de tickets, la recuperación y el envío de correo. Con varias instancias, esta comprobación se realiza por separado para cada instancia actualizada.

Actualización fallida

No ejecute el script repetidamente sin analizar la causa. Guarde la salida y los registros, compruebe el espacio libre, el acceso a la base de datos, los permisos de archivos y el estado del servicio. Si el estado no es claro, restaure conjuntamente la copia completa previamente verificada del directorio del programa y la base de datos.

Actualización a 2.0.2

Aplicación y base de datos pasan a 2.0.2; la API interna permanece en 1.0. La sincronización añade chat interno, presencia en tickets, programación de informes con destinatarios y registros, relaciones servicio-CI, adjuntos FAQ y referencia opcional a procesos en formularios. Estos añadidos no eliminan datos existentes.

Use update.sh del nuevo paquete para la instancia elegida explícitamente. Actualizar las fuentes Sphinx o ejecutar build-all.bat no actualiza Qisutu ni su base de datos.

El actualizador no crea una copia automática de los archivos de programa. Debe existir antes una copia completa de instancia y base, incluido var/secure/security.key. Si hay errores después de iniciar cambios, permanece el mantenimiento. Corrija la causa y repita la misma actualización; no sobrescriba indiscriminadamente archivos aislados del programa o la base.

Compruebe versiones, acceso, correo, chat y transferencia, informes, descarga FAQ y relaciones servicio-CI. Pruebe procesos de formularios solo si KimProcesses está instalado y habilitado.