Hola a todos, al intentar añadir la extensión “pglogical” a nuestra base de datos Postgres, estoy notando algunas discrepancias entre la versión de postgres instalada y la versión citada por los archivos de plantilla y configuración de postgres.
La versión de postgres actualmente instalada es la v16.2 (lanzada en febrero de 2024), pero los archivos de configuración todavía están asociados con la v13, por ejemplo:
root@ip-172-31-62-223-app:/var/www/discourse# sudo -u postgres psql discourse
psql (16.2 (Debian 16.2-1.pgdg110+2), server 13.14 (Debian 13.14-1.pgdg110+2))
Type "help" for help.
discourse=# SHOW config_file;
config_file
-----------------------------------------
/etc/postgresql/13/main/postgresql.conf
(1 row)
o el archivo postgres.template, que solo llega hasta la v13.
Esto solo es un problema para mí en este momento porque la biblioteca pglogical se encuentra en las carpetas v16, pero no en las carpetas v13. Intenté crear enlaces simbólicos con
for i in $(ls /usr/share/postgresql/16/extension/pglogical*); do ln -s $i /usr/share/postgresql/13/extension/$(basename $i); done
ln -s /usr/lib/postgresql/16/lib/pglogical.so /usr/lib/postgresql/13/lib/
pero eso solo lleva a este error:
> FATAL: could not load library "/usr/lib/postgresql/13/lib/pglogical.so":/usr/lib/postgresql/13/lib/pglogical.so: undefined symbol: shmem_request_hook
Por lo tanto, los archivos de la biblioteca no son un reemplazo 1:1 entre las diferentes versiones de postgres.
Al final, parece que hay una brecha entre la versión de postgres instalada y la versión que el lanzador de docker cree que está construyendo.
Mi objetivo final aquí es instalar pglogical, y lo más ideal sería encontrar una solución que sea reproducible al reconstruir el contenedor (es decir, archivos o líneas que se puedan agregar fácilmente a los archivos de plantilla). Definitivamente estoy dispuesto y soy capaz de hacer más del trabajo DevOps necesario aquí (ya que es un requisito para mi organización), pero solo tengo curiosidad si otros se han encontrado con esta brecha y qué han hecho al respecto.
¡Gracias por leer!