Consideraciones, errores y soluciones en la actualización a v3.6.0

Aporto con algunas consideraciones y errores con los que nos encontramos en UNGS al momento de hacer la actualización a la v3.6.0

1 - Error con yarm durante ejecución de “composer install --no-dev”

Tal como se comenta en el post UNPA_Error en la actualizacion 3.6.0 - Técnicos Mapuche - Foro Comunidad SIU, en nuestro servidor se instaló, por algún motivo, la versión de nodejs 4.x
por lo que eliminamos y lo volvimos a instalar de la siguiente manera

sudo apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
sudo apt-get install nodejs


2 - Error en ejecución comando “./bin/instalador proyecto:actualizar --instalacion-anterior /RUTA_INSTALACION_ANTERIOR”

  1. Instalar SIU-Toba
    ====================
    [ERROR] Error, no se pudo configurar el modo mantenimiento debido a que no se existe la ruta o el archivo ‘/ruta_instalacion_version_mapuche_anterior/mapuche/proyecto.ini’

En la configuración el archivo instalador.env, tuvimos que comentar los parámetros

CONFIG DE TOBA

#TOOBA_PROYECTO_DIR
#TOOBA_INSTALACION_DIR

Si bien, en la documentación de las variables de entorno del instalador, hace mención a que son opcionales; en la actualización de una instalación existente, por mas que se le pase el parámetro “proyecto:actualizar --instalacion-anterior /RUTA_INSTALACION_ANTERIOR” el instalador las considera durante el proceso


3 - Error en ejecución comando “./bin/instalador permisos:simple -U www-data -W www-data”

In Finder.php line 547:
The “/ruta_instalacion_mapuche/metadatos_compilados” directory does not exist.

Hasta la versión 3.5.1, el usuario que se utilizaba para la conexión al postgres, era el usuario mapuche (usuario que no tiene permisos de administrador), por lo que al momento de ejecutar el comando “./bin/instalador proyecto:actualizar --instalacion-anterior /RUTA_INSTALACION_ANTERIOR”, genera el siguiente error en la base:

[2019-04-13 13:14:12] MAIN.INFO: [ COMANDO EJECUTADO ] php /ruta_instalacion_mapuche/vendor/siu-toba/framework/bin/toba instalacion_silenciosa instalar -d 0 -t 1 -h
localhost -p 5432 -u mapuche -b base_mapuche -c /tmp/InstalacionSogEm7 -k /tmp/InstalacionKynk3G -n mapuche --no-interactive --usuario-admin toba --alias-nucleo /docentes/to
ba_mapuche --schema-toba toba_mapuche
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ] Creación de la instancia
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ]
[2019-04-13 13:14:12] MAIN.INFO: [ TOBA ] ERROR ejecutando SQL: [CODIGO]: 7 [SQLSTATE]: db_42501 [MENSAJE]: ERROR: debe ser dueño del esquema toba_mapuche [SQL EJECUTA
DA]: ALTER SCHEMA toba_mapuche RENAME TO toba_mapuche_backup;

este error no se informa en pantalla, y nos traía aparejado los siguientes problemas (que llegamos a detectar):

A - No generaba la carpeta metadatos_compilados
B - No se generaba los datos de configuración para el alias del proyecto mapuche, en el archivo toba.conf
C - No se copiaba el archivo entorno_toba.env
D - No se actualizaban los datos del archivo instancia.ini, con las rutas de la nueva instalación
E - No se actualizaba el parámetro Version RRHH > Version de la tabla rrhini

La solución fue cambiar el usuario de conexión, de la instalación anterior, a un usuario con permisos de administrador y definir en el archivo instalador.env, el mismo usuario de conectividad


Consideraciones por si utiliza un usuario para procesos de backup automatizados
En los schema mapuche_auditoria y toba_mapuche, toba_mapuche_backup no se asignaron (o se eliminaron) los GRANT correspondientes para el usuario de backup

Llegué al final de la instalación y me encontré con que no se generó el alias para el proyecto mapuche en toba.conf. Por lo que deduzco tengo problemas con el usuario de postgres.

Cual proceso hiciste? la instalación vieja está hecha con usuario mapuche pero para la nueva usaste usuario postgres?
Entonces si hiciste esto, en la instalación vieja le diste permiso a los esquemas toba_mapuche al usuario postgres y volviste a instalar el sistema con usuario postgres?

Estoy trabado en este paso

Hola Marco

Llegué al final de la instalación y me encontré con que no se generó el alias para el proyecto mapuche en toba.conf. Por lo que deduzco tengo problemas con el usuario de postgres.

– En nuestro caso, detectamo que este síntoma se presentaba acompañado por la falta de la carpeta /ruta_instalacion_mapuche/metadatos_compilados.

Cual proceso hiciste?

– Si te referís a instalación o actualización; nosotros actualizamos una instalación existente

la instalación vieja está hecha con usuario mapuche pero para la nueva usaste usuario postgres?

– Si, hasta la versión 3.5.1, el usuario de conectividad que usábamos era mapuche y a partir de la 3.6.0 el usuario de conectividad es postgres. Y esto es debido a que hasta la versión 3.5.1, el instalador (web) solicitaba el usuario de conectividad (sugerido mapuche) que era el que se terminaba configurando en bases.ini; pero también solicitaba los datos de un superusuario para ejecutar los procesos sobre la base de datos.
En este nuevo instalador, el dato del superusuario no es requerido; por lo que se entiende que el único usuario con el que cuenta el instalador, es el que recupera de bases.ini 9de la actualización anterior).; lo que lleva a la necesidad obligada de ser un superusuario.

Entonces si hiciste esto, en la instalación vieja le diste permiso a los esquemas toba_mapuche al usuario postgres y volviste a instalar el sistema con usuario postgres?

– No, el usuario postgres ya tiene permisos sobre todos los schema de la base mapuche (owner). Lo que hicimos fue, al momento de realizar la instalación, cambiar los datos del usuario de conectividad en el archivo bases.ini (datos del usuario mapuche, por datos del usuario postgres)

espero haber aclarado un poco las dudas, cualquier cosa, seguimos en contacto.

Suerte!

Hola Javier, gracias por responder. Te hago preguntas puntuales a ver si soy yo el que tiene mal los datos:
El esquema mapuche tiene como owner al usuario mapuche?
Pregunto porque tratando de hacer la actualización con el usuario postgres me tira error como que no tiene permisos en el esquema mapuche ¿? creo que tengo algo mal por acá

Esto pasa cuando actualizo a 3.6.0 con usuario mapuche
[2019-05-06 09:39:20] MAIN.ERROR: 0 - SQL ERROR: SQLSTATE[42501]: Insufficient privilege: 7 ERROR: permiso denegado a la relación apex_usuario DELETE FROM apex_usuario (no tiene permisos el usuario mapuche en el esquema toba_mapuche por lo que interpreto)

Hola Marco

Te voy respondiendo

El esquema mapuche tiene como owner al usuario mapuche?
– No, el owner de la base y los schemas es postgres (al menos así la tememos en ungs)

Pregunto porque tratando de hacer la actualización con el usuario postgres me tira error como que no tiene permisos en el esquema mapuche ¿? creo que tengo algo mal por acá

Esto pasa cuando actualizo a 3.6.0 con usuario mapuche
[2019-05-06 09:39:20] MAIN.ERROR: 0 - SQL ERROR: SQLSTATE[42501]: Insufficient privilege: 7 ERROR: permiso denegado a la relación apex_usuario DELETE FROM apex_usuario (no tiene permisos el usuario mapuche en el esquema toba_mapuche por lo que interpreto)
– Por lo que informa, si; entiendo que es un tema de permisos del usuario mapuche. Para solucionar los problemas de permisos en las acciones sobre la base, deberían de cambiar el usuario de conectividad en el archivo bases.ini de la versión anterior. (pasarlo de mapuche a postgres) si es que no lo han cambiado.

Saludos

Javier