Buenos días, estoy intentando migrar de Mapuche 3.11.1 a 3.12.0 y como informa la actualización hay que subir a la versión 7.3 de php y a la versión 11 de postgres. El Mapuche está instalado en un Linux 16.04 y he probado con un sevidor de base de datos afuera y en localhost.
Actualizar a php7.3
Creo que algún módulo me falta por que la verdad es que no los encontré para php7.3 (me quería instalar el 7.4 con algunos módulos)
Como tenes la configuración en postgresql.conf de la variable standard_conforming_strings? tiene que estar en off y descomentada. Luego de cada cambio reiniciar el servicios de postgres en este caso y de apache si modificaste la configuración en el php.ini para que te tome los cambios.
Mariela, cuando creo una base de datos para Mapuche hago lo siguiente.
Desde PGAdmin4 creo la base de datos y correo el siguiente comando para convertir la base de datos
update pg_database set encoding=0 where datname='siu';
Luego restauro la base de datos (la que está en el postgres 9.6)
2020-09-28 16:41:48.654 -03 [6044] LOG: el sistema de bases de datos fue apagado en 2020-09-28 16:41:37 -03
2020-09-28 16:41:48.654 -03 [5792] LOG: el sistema de bases de datos está listo para aceptar conexiones
2020-09-28 16:41:48.670 -03 [5168] FATAL: el sistema de base de datos está iniciándose
2020-09-28 16:44:38.152 -03 [2756] LOG: los puntos de control están ocurriendo con demasiada frecuencia (cada 14 segundos)
2020-09-28 16:44:38.152 -03 [2756] HINT: Considere incrementar el parámetro de configuración «max_wal_size».
2020-09-28 16:44:41.443 -03 [5868] ERROR: invalid byte sequence for encoding "UTF8": 0xe1 0x73 0x20
2020-09-28 16:45:50.552 -03 [4044] LOG: el sistema de bases de datos fue apagado en 2020-09-28 16:45:48 -03
2020-09-28 16:45:50.598 -03 [4000] LOG: el sistema de bases de datos está listo para aceptar conexiones
2020-09-28 16:45:50.614 -03 [2240] FATAL: el sistema de base de datos está iniciándose
2020-09-28 16:47:05.511 -03 [6096] ERROR: invalid byte sequence for encoding “UTF8”: 0xe1 0x73 0x20
Corrí el comando para actualizar 2 veces, en la primera el log del postgres me recomendó incrementar el max_wal_size y lo llevé a 2GB
reinicié el servidor y volví a correr el comando para actualizar. Y ahí se puede ver nuevamente el error del encoding.
Nota: si postgres no es su usuario utilizar el correcto, collate y ctype sino tiene es_AR intentar incorporar desde linux dpkg-reconfigure locales y seleccionar es_ar iso 8859 1 y es_ar utf-8,
también configurar locale, posiblemente en etc/default/locale. https://wiki.debian.org/es/Locale. Asegurarse que es_AR esté disponible desde postgresql
Nota: -jXX <— reemplazar XX por la cantidad de procesos simultáneos que deseas para restaurar la base, suelen ir de la mano de los núcleos, 8,12… pero puedes ir probando diferentes valores.
La idea principal es, hacer una copia de la base original, crear una base con codificación LATIN1 y tipos es_AR, restaurar la copia y con eso debería funcionar correctamente la migración.
Primero que todo te recomiendo partir de la base en producción, verificar los encoding que tenga y replicarlos.
Actualmente, la base de datos debe estar en encoding SQL-ASCII (si bien sabemos que funciona con otros, nuestros testeos los realizamos sobre este encoding).
Para crear la base desde el pgadmin, debes seleccionar encoding sqlascii y template0. Sino, desde linea de comandos seria algo asi:
CREATE DATABASE nombre_base WITH ENCODING=‘SQL_ASCII’ TEMPLATE=template0;
Luego haces el dump de la base y la restauras en la base que creaste (nombre_base).
Si esto no funciona, te pido por favor que nos ADJUNTES el log de postgres. Por ultimo, es importante verificar como esta definida la base actual.
Espero que te sea de ayuda.
Saludos, Nico.
PD: Si nos tenes que enviar algun dato sensible o que no pueda ser publico, lo podes realizar cargando un GDS.
Buenas,
este problema a mi se me presento usando debian 10, que supuestamente viene con estandar de php 7.3 y postgresql 11 en el repositorio.
lo termine solucionando armando un nuevo servidor con debian 9.