Actualización de PostgreSQL 15

Actualización en ARM (aarch64) con configuración regional no predeterminada

Pasé un tiempo arreglando una actualización defectuosa en un servidor único con una configuración de dos contenedores.

  1. Su CPU es ARM
  2. Discourse estaba configurado con la configuración regional en_UK.UTF-8

Paso a paso, descubrí que:

  1. tianon/postgres-upgrade:13-to-15 no funciona en ARM
  2. La configuración regional se almacena en share/${CONTAINER}/postgres_data/postgresql.conf

Comencé comentando la parte env: del contenedor de datos, para asegurarme de que utilizara las configuraciones regionales predeterminadas.

Así que, para salir del lío de la actualización, tomé un paso peligroso, asumiendo que las diferencias de intercalación entre en_GB y en_US eran insignificantes, y actualicé sin piedad todo el clúster a en_US:

UPDATE pg_database SET datctype='en_US.UTF-8', datcollate='en_US.UTF-8';

No estoy seguro de que este paso sea necesario, puede variar (YMMV). Lo dejo aquí para que otros más conocedores comenten, y no lo recomiendo en absoluto para idiomas diferentes.

Luego reemplacé la configuración regional en postgresql.conf:

sed -i -e 's/en_GB/en_US/g' shared/data/postgres_data/postgresql.conf
sudo -H -u discourse ./launcher rebuild data
...
UPGRADE OF POSTGRES COMPLETE

:tada:

No pienses que fue fácil: no menciono el largo camino de explorar opciones, especialmente porque cuando intervine, la interfaz de administración no estaba disponible y la última copia de seguridad se hizo hace 6 días. Tuve que experimentar antes de poder llegar a una resolución adecuada, o al menos, funcional.

Espero que esto ahorre tiempo a algunas personas.

5 Me gusta