Error con la instalación sq_nucleo

Buen día,

Estoy instalando desde cero en un ambiente de prueba el aplicativo sq-nucleo, y nos da un error la instalación.
Cuando el instalador llega a instalando el proyecto sq_nucleo y luego de que la barra de progreso de instalación llega al 100% nos da el siguiente error:
[ERROR] PHP Fatal error, para ver mas detalle del error abra el archivo instalador.log

y en el log aparece el siguiente error:

[2022-11-22 11:44:23] MAIN.ERROR: Error al migrar la base de datos: Fallo la migracion: M34086 PHP Fatal error: Uncaught Exception:
Fallo la migracion: M34086 in /usr/local/proyectos/sanaviron_quilmes/nucleo/toba/php/extension_toba/sq_nucleo_modelo.php:49 Stack trac
e: #0 /usr/local/proyectos/sanaviron_quilmes/nucleo/toba/php/extension_toba/sq_nucleo_modelo.php(11): sq_nucleo_modelo->migrarDb() #1
/usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/siu-toba/framework/php/modelo/aplicacion/toba_aplicacion_comando_base.php(41): sq
_nucleo_modelo->instalar(Array) #2 /usr/local/proyectos/sanaviron_quilmes/nucleo/toba/php/extension_toba/sq_nucleo_comando.php(11): to
ba_aplicacion_comando_base->opcion__instalar(Array) #3 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/siu-toba/framework/php/con
sola/comandos/comando_proyecto.php(87): sq_nucleo_comando->opcion__instalar(Array) #4 /usr/local/proyectos/sanaviron_quilmes/nucleo/ve
ndor/siu-toba/framework/php/consola/comando.php(90): comando_proyecto->ejecutar_opcion(‘opcion__instala…’, Array) #5 /usr/local/proy
ectos/sanaviron_quilmes/nucleo/vendor/siu-toba/framework/php/conso in /usr/local/proyectos/sanaviron_quilmes/nucleo/toba/php/extension
_toba/sq_nucleo_modelo.php on line 49

Adjunto el archivo de log.

Muchas gracias…
Saludos
Juan.-


instalador-log.rar (3.22 KB)

Buenos días, te consulto que versión de postgres están usando? Partieron de una instalación limpia, es decir no existia ninguna base realacionada a sq_nucleo en el servidor postgres? El modo de instalación es el sugerido por https://documentacion.siu.edu.ar/wiki/SIU-Sanaviron-Quilmes/version2.2.0/instalar_sq_produccion ?

Buen día Valentin

La versión de postgres que estoy usando es la 11.17
La instalación es desde cero , el sistema operativo es Debina 10 con PHP 7.3.3

veo que llego a crear las bases sq_nucleo con tablas en los schemas pg_catalog y public y la base de datos toba_ sq_nucleo con tablas en el schema pg_catalog

Saludos
Juan .-

Buenas Tardes, te dejo otra consulta más Juan, la instalación es similar a la de producción ? no es la que se usaba con Docker que ya no esta disponible no ?

Buenas tardes Valentin-

Exacto, la instalación es como si fuera un ambiente de producción, la estoy realizando directamente sobre una VM y no estoy utilizando docker.

Saludos
Juan .-

Buenas Tardes

Podrías ejecutar cd bin/ y luego ./phinx migrate y mostrarnos la salida del error para obtener más información?

Saludos
Valentin

Buen día Valentin.

Te paso la salida del comando que me solicitastes…


using config file ./phinx.php
using config parser php
using migration paths
 - /usr/local/proyectos/sanaviron_quilmes/nucleo/migrations
using seed paths
 - /usr/local/proyectos/sanaviron_quilmes/nucleo/migrations/seeds
warning no environment specified, defaulting to: default
using adapter pgsql
using database sq_nucleo
ordering by creation time

 == 20210902152813 M34086: migrating
PDOException: SQLSTATE[22P05]: Untranslatable character: 7 ERROR:  carácter con secuencia de bytes 0xe2 0x80 0x93 en codificación «UTF8» no tiene equivalente en la codificación «LATIN1» in /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php:326
Stack trace:
#0 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php(326): PDOStatement->execute(Array)
#1 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/AdapterWrapper.php(180): Phinx\Db\Adapter\PdoAdapter->bulkinsert(Object(Phinx\Db\Table\Table), Array)
#2 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/TimedOutputAdapter.php(103): Phinx\Db\Adapter\AdapterWrapper->bulkinsert(Object(Phinx\Db\Table\Table), Array)
#3 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Table.php(658): Phinx\Db\Adapter\TimedOutputAdapter->bulkinsert(Object(Phinx\Db\Table\Table), Array)
#4 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Table.php(630): Phinx\Db\Table->saveData()
#5 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Db/Table.php(688): Phinx\Db\Table->update()
#6 /usr/local/proyectos/sanaviron_quilmes/nucleo/migrations/20210902152813_m_34086.php(76): Phinx\Db\Table->save()
#7 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Migration/Manager/Environment.php(109): M34086->up()
#8 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(383): Phinx\Migration\Manager\Environment->executeMigration(Object(M34086), 'up', false)
#9 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Migration/Manager.php(356): Phinx\Migration\Manager->executeMigration('default', Object(M34086), 'up', false)
#10 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Console/Command/Migrate.php(123): Phinx\Migration\Manager->migrate('default', 20220912131922, false)
#11 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/symfony/console/Command/Command.php(255): Phinx\Console\Command\Migrate->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(Phinx\Console\Command\Migrate), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/src/Phinx/Console/PhinxApplication.php(69): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/symfony/console/Application.php(148): Phinx\Console\PhinxApplication->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/robmorgan/phinx/bin/phinx(27): Symfony\Component\Console\Application->run()
#17 /usr/local/proyectos/sanaviron_quilmes/nucleo/bin/phinx(115): include('/usr/local/proy...')
#18 {main}
root@srv-sq:/usr/local/proyectos/sanaviron_quilmes/nucleo/bin#

Saludos
Juan.-

Hola Juan,

Parece que el problema esta que el encoding del cluster de la base esta en LATIN1 en lugar de estar en UTF8. Si es así podrías crear el cluster en UTF8 y volver a crear la base de negocio y ejecutar el comando de phinx que te paso Valentin.

Saludos,

4

Hola Fernando, buen día.

Disculpa que no te conteste antes pero tuve que dejar este tema por un tiempo y ahora lo estamos retomando.

Te comento lo que hice.

  • Elimine el cluster de postgres y los volví a crear con el encoding UTF8.

  • borre la carpeta de instalación y volví a bajar el proyecto.

  • Corrí toda instalación de nuevo.

  • Modifique el sq.ini con las siguientes lineas.

  • standalone=“true”

  • validar_comunicacion_sistemas=false

Cuando quiero ingresar a siteio con [b]http://srv-sq.unm.edu.ar/sq_nucleo/[/b], obtengo el siguiente error:

DB CONNECTION ERROR: ERROR conectandose al motor - SQLSTATE[08006] [7] could not translate host name "connect_timeout=30" to address: Name or service not known Por favor, verifique sus parámetros de conexión: dbname= port= host=

y en el /var/log/apache2/error.log obtengo.

[php7:notice] [pid 696] [client 10.9.0.5:11380] SIU\\SQ\\Lib\\errores\\error_db: DB CONNECTION ERROR
: ERROR conectandose al motor - SQLSTATE[08006] [7] could not translate host name "connect_timeout=30" to address: Name or service not
 known\n\nPor favor, verifique sus par\xc3\xa1metros de conexi\xc3\xb3n:\ndbname=\nport=\nhost=\n[TRAZA]\n\t\n\tSIU\\SQ\\Lib\\db\\db_p
do->conectar \nArchivo: /usr/local/proyectos/sanaviron_quilmes/nucleo/vendor/siu/sq-lib/src/siu/sq/lib/db/db_pdo.php, lInea 75 \n\t\n\
tSIU\\SQ\\Lib\\db\\db_pdo->__construct \nArchivo: /usr/local/proyectos/sanaviron_quilmes/nucleo/src/siu/sq/nucleo/Instalador/bootstrap
.php, lInea 28 \nParametros: \n\tpgsql\t\t\t\t\t\t\t\n\t\n\tSIU\\SQ\\Uv\\Instalador\\bootstrap::config \nArchivo: /usr/local/proyectos
/sanaviron_quilmes/nucleo/src/siu/sq/nucleo/Instalador/bootstrap.php, lInea 8 \n\t\n\trequire_once \nArchivo: /usr/local/proyectos/san
aviron_quilmes/nucleo/bin/phinx.php, lInea 21 \nParametros: \n/usr/local/proyectos/sanaviron_quilmes/nucleo/src/siu/sq/nucleo/Instalad
or/bootstrap.php\t\t\n\t\n\tinclude \nArchivo: /usr/local/proyectos/sanaviron_quilmes/nucleo/ven...SIGUE...

Las credenciales para acceder a la base de datos cargadas en el instalador.env y sq.ini son correctos al menos con pgsql utilizando las variables cargadas en esos archivos me puedo conectar.

gracias por la ayuda.
Saludos
Juan.-

Buenas tardes Juan,

Podrías pasarnos los archivos bases.ini y sq.ini de tu instalación para ver como tenes configurado?

Tiene que corresponder el valor que tenes en la entrada db de [sq_nucleo] en el archivo sq.ini con la entrada de la base de datos de negocio en el archivo bases.ini

Por ejemplo:

sq.ini

[sq_nucleo]
db="desarrollo sq_nucleo sq_nucleo"
db_test="desarrollo sq_nucleo sq_nucleo"
standalone="true"

bases.ini

[desarrollo sq_nucleo sq_nucleo]
motor = "postgres7"
profile = "localhost"
usuario = "postgres"
clave = "postgres"
puerto = "5432"
encoding = "LATIN1"
base = "sq_nucleo"
schema = "public"

Saludos,
Fernando.

4

Hola Fernando, buen día.

Te paso los dos archivos que me solicitaste, los estuve revisando y creo que están bien.
También realice la prueba de conectarme a la bases toba_sq_nucleo y sq_nucleo con los parámetros que figuran en los archivos y no tuve problemas.

bases.ini


; Configuracion de BASES de DATOS

[toba_3_3]
motor = "postgres7"
profile = "localhost"
usuario = "postgres"
clave = "########"
base = "toba_sq_nucleo"
puerto = "5432"
encoding = "LATIN1"
schema = "toba_sq_nucleo"

[produccion toba_usuarios toba_usuarios]
motor = "postgres7"
profile = "localhost"
usuario = "postgres"
clave = "########"
base = "toba_sq_nucleo"
puerto = "5432"
encoding = "LATIN1"
schema = "toba_sq_nucleo"

[produccion sq_nucleo sq_nucleo]
motor = "postgres7"
profile = "localhost"
usuario = "postgres"
clave = "#########"
puerto = "5432"
encoding = "LATIN1"
base = "sq_nucleo"
schema = "public"



sq.ini


[sq_nucleo]
db="produccion sq_nucleo sq_nucleo"
db_test="produccion sq_nucleo sq_nucleo"
#------------------------------------------#
# Cuando se agregue algún modulo al nucleo #
# psarla la variable standalone a "true"   #
# y poner validar_comunicacion_sisemas en  #
# "true" o borrar                          #
#------------------------------------------#
standalone="true"
#standalone="false"
validar_comunicacion_sistemas=false


[unidad_venta]
base_url="http://127.0.0.1/sq_academico/rest/"
auth_usuario="toba"
auth_password="#######"
auth_method="basic"

[arai]
base_url=""
auth_usuario=""
auth_password=""
auth_method=""

[pilaga]
base_url="http://srv-pilaga-test.unm.edu.ar/siu/pilaga/rest/v1/"
auth_usuario="sq"
auth_password="######"
auth_method="digest"

[sq_pagos_backend]
base_url="http://127.0.0.1/sq_pagos_backend/"
auth_usuario="sq_nucleo"
auth_password="######"
auth_method="basic"

[guarani]
base_url="http://srv-guarani-app-des/guarani_pers_migra/rest/v1/"
auth_usuario="unm"
auth_password="######"
auth_method="basic"

[graylog]
activo="0"
host="127.0.0.1"
port="12201"

[factura_afip]
produccion="false"
cuit="00000000000"
connection_timeout=""


[mailer]
;;-----------------------------------------------------
; Directivas generales de funcionamiento
ENVIA_EMAILS = "0" ; Indica si envía los correos o actúa como "dummy" ("1" = Si, "0" = No).
EMAIL_ENVIOS_DESARROLLO = "" ; Es la cuenta a la cual enviar los correos cuando es una instalación de desarrollo.
ES_DESARROLLO = "1"
;-----------------------------------------------------
; Configuración general de SMTP
SMTP_HOST = "smtp.googlemail.com" ; Es el host del SMTP por el cual saldrá el envío definitivo.
SMTP_PUERTO = "465" ; Puerto por el cual se enviará el correo.
SMTP_PROTOCOLO_SEGURIDAD = "ssl|tls" ; Se indica el protocolo de seguridad. Este valor se usa como prefijo de conexión ("", "ssl" o "t
ls").
;-----------------------------------------------------
; Configuración de la autenticación SMTP
SMTP_AUTENTICAR = "1"
SMTP_USUARIO = "test"
SMTP_CLAVE = "test"
SMTP_AUTO_TLS = "1"
; habilita tls si el server lo soporta incluso si SMTP_PROTOCOLO_SEGURIDAD no esta seteado en tls ("1" = Si, "0" = No)
;si se deja comentado por defecto esta en true, en UNQ fue necesario ponerlo en false ('0')

[AraiDocumentos]
HOST                = ""
USER                = ""
PASS                = ""
LOGS_DIR            = ""
QUEUE_PATH          = ""
SISTEMA_ORIGEN      = ""
QUEUE_TEMP_DIR      = ""
DB_QUEUE            = ""
DB_HOST             = ""
DB_PORT             = ""
DB_USER             = ""
DB_PASS             = ""
DB_TABLE            = ""
POLLING_INVERVAL    = ""
REST_NUCLEO         = ""
TIPO_DOCUMENTO      = ""
USUARIO_ARAI        = ""
USUARIO_SSO         = ""
USUARIO_CUENTA      = ""


Saludos
Juan—

Hola Juan,

El problema puede estar que en el archivo sq.ini comentaron las lineas con numeral # en lugar de punto y coma ;
Los comentarios en los .ini se hacen con ;

Prueben reemplazar los # por ; como se muestra en el siguiente ejemplo:


[sq_nucleo]
db="produccion sq_nucleo sq_nucleo"
db_test="produccion sq_nucleo sq_nucleo"
;------------------------------------------
; Cuando se agregue algún modulo al nucleo 
; psarla la variable standalone a "true"   
; y poner validar_comunicacion_sisemas en  
; "true" o borrar                          
;------------------------------------------
standalone="true"
;standalone="false"
validar_comunicacion_sistemas=false

Saludos,
Fernando

3

Hola Fernando, buen día.

Te confirmo que el error estaba en la forma de comentar sq.ini, y ya tengo sq-nucleo levantado.
Muchas gracias por la colaboración.

Saludos
Juan.-