Me he conectado. No he actualizado en 11 meses. Empecé intentando actualizar el Docker Manager. Nunca pareció completarse. Al día siguiente, la página de administración estaba prácticamente rota. Intenté ejecutar ./launcher rebuild app. Obtengo el siguiente error:
2025-10-30 20:04:52.144 UTC [1892] discourse@c_discourse ERROR: debe ser propietario de la extensión vector
2025-10-30 20:04:52.144 UTC [1892] discourse@c_discourse STATEMENT: ALTER EXTENSION vector UPDATE TO ‘0.7.0’;
Pero la base de datos está detenida, por lo que las soluciones que vi no funcionan.
2025-10-31 00:27:40.021 UTC [662] FATAL: los archivos de la base de datos son incompatibles con el servidor
2025-10-31 00:27:40.021 UTC [662] DETAIL: El directorio de datos fue inicializado por la versión 15 de PostgreSQL, la cual no es compatible con esta versión 13.16 (Debian 13.16-1.pgdg120+1).
Gracias. Es demasiado para entenderlo todo, pero nada parece ser mi problema. La base de datos parece ejecutarse durante el proceso de reconstrucción, que es la parte extraña. Al menos por lo que puedo ver en lo que se desplaza.
Eso la mayoría de las veces no va a funcionar después de 11 meses.
Definitivamente necesitas hacer la actualización de postgres 15, y eso es parte de lo que está mal. Es posible que puedas cambiar a postgres 13 y volver a poner las cosas en marcha antes de hacer la actualización.
No si multisite todavía se considera no compatible.
El problema parece ser que cuando lo instalé no había ningún usuario/contraseña conectado a las bases de datos individuales. Eso parece cambiar. Ahí es donde reside el problema. He intentado modificarlo un poco añadiendo un usuario y luego un usuario con una contraseña en blanco, pero eso no ayudó.
Mi configuración frente a la nueva configuración de ejemplo:
La extensión Pgvector está desactualizada o no está configurada en una de tus bases de datos. Me he encontrado con esto en algunas instalaciones hace unos meses. Es muy sencillo de resolver, solo necesitas actualizarla.
Entra en el contenedor de la base de datos, ejecuta psql como discourse (o el propietario de tu base de datos) y luego elige cada base de datos y ejecuta
Parece que el propietario de la extensión para la base de datos c_discourse no es el usuario discourse. Deberás comprobar quién es el propietario, por ejemplo:
¿Alguna ayuda sobre cómo iniciar la base de datos para hacer esto? Ese es realmente el punto clave.
EDITAR: Los únicos archivos de postgres que encuentro son de la versión /13. Así que estoy en un estado de limbo. Parece que el programa de la base de datos se actualizó pero los archivos de la base de datos no. He buscado, pero nada con lo que me sienta cómodo aparte de intentar copiar los archivos y jugar con ellos.
2025-10-31 00:27:40.021 UTC [662] FATAL: los archivos de la base de datos son incompatibles con el servidor 2025-10-31 00:27:40.021 UTC [662] DETAIL: El directorio de datos fue inicializado por la versión 15 de PostgreSQL, la cual no es compatible con esta versión 13.16 (Debian 13.16-1.pgdg120+1).
Bueno, eso purgó 15 e instaló 13, pero extrañamente, el mismo error. Se abortó mucho más cerca del inicio del proceso.
2025-11-01 15:30:26.522 UTC [2547] FATAL: los archivos de la base de datos son incompatibles con el servidor 2025-11-01 15:30:26.522 UTC [2547] DETAIL: El directorio de datos fue inicializado por la versión 15 de PostgreSQL, la cual no es compatible con esta versión 13.22 (Debian 13.22-1.pgdg12+1).
Este es el punto de fallo: 2025-11-01 15:30:26.522 UTC [2547] FATAL: los archivos de la base de datos son incompatibles con el servidor 2025-11-01 15:30:26.522 UTC [2547] DETAIL: El directorio de datos fue inicializado por la versión 15 de PostgreSQL, la cual no es compatible con esta versión 13.22 (Debian 13.22-1.pgdg12+1).
Intenté con la plantilla 13. El problema es que la base de datos ya fue alterada por la 15, pero la migración de los 2 sitios multisitios añadidos se realizó de alguna manera con un usuario que parece no ser reconocido por el instalador. Como dije anteriormente, no hubo ningún requisito de combinación de usuario/contraseña cuando agregué estos inicialmente, así que no sé exactamente cómo se agregaron a la base de datos.
¿Hay algún valor que pueda agregar a las opciones de usuario/contraseña que las satisfaga? Recuerda que no los agregué yo, así que ¿qué puso el script inicial si no fue postgres, que parece ser el usuario predeterminado indicado por la salida que veo?
¿Sería posible simplemente comentar los dos sitios agregados para poner en marcha la base de datos y LUEGO tal vez usar el método de importación que se está utilizando ahora?
La base de datos siempre ha sido mi punto débil. Parece que esto está estructurado de manera diferente a lo que pensaba, que era que todas estas cosas estaban en /var/lib/posgresql bajo uno de esos directorios extraños y opacamente numerados.
Agradezco toda la ayuda. Hay algunos foros en los que soy yo quien niega con la cabeza ante algunos de los usuarios.
Si estás creando una versión de Discourse que incluye plugins empaquetados, la compilación fallará con la extensión pgvector faltante, independientemente de la versión de PostgreSQL en la que te encuentres. Si estás en una versión anterior de PostgreSQL, tendrás aún más problemas de los que tenías al principio.
Espero que hayas hecho una copia de seguridad antes de este viaje de actualización.
Sugiero configurar una instancia nueva de Discourse en otro lugar y restaurar tu copia de seguridad. Esa es la única forma confiable de salir de esta situación.
También puedes hacerlo manualmente, pero será mucho más trabajo y no garantizará resultados.
¿Se lanzó una nueva versión anoche? Creo que vi algunos git pulls. De todos modos, usar la plantilla 13 y mover los datos funcionó. Más o menos.
La base de datos pareció migrar bien. No puedo encontrar el ‘grant error’ en las páginas y páginas de salida. No significa que no esté ahí. Puede que tenga que ejecutar discourse_doctor para tener una salida guardada que pueda buscar errores. La base de datos está en funcionamiento. Ahora tengo un error de página en lugar de un “bad gateway” en mi navegador. Pondré lo último de la salida aquí para completitud, pero si no encuentro el mismo ‘grant error’ listado anteriormente, iniciaré un nuevo hilo.
Gracias a todos los que han ayudado hasta ahora. Como mínimo, ahora puedo acceder a la base de datos. Un gran agradecimiento a todos los que me han ayudado a llegar hasta aquí.
I, [2025-11-02T15:17:02.281908 #1] INFO -- : Terminating async processes I, [2025-11-02T15:17:02.282204 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U p ostgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 2547 I, [2025-11-02T15:17:02.282450 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 2644 2025-11-02 15:17:02.289 UTC [2547] LOG: received fast shutdown request 2644:signal-handler (1762096622) Received SIGTERM scheduling shutdown... 2644:M 02 Nov 2025 15:17:02.299 # User requested shutdown... 2644:M 02 Nov 2025 15:17:02.299 * Saving the final RDB snapshot before exiting. 2025-11-02 15:17:02.384 UTC [2547] LOG: aborting any active transactions 2025-11-02 15:17:02.391 UTC [2547] LOG: background worker \"logical replication launcher\" (PID 2562) exited with exit code 1 2025-11-02 15:17:02.452 UTC [2557] LOG: shutting down 2644:M 02 Nov 2025 15:17:02.549 * DB saved on disk 2644:M 02 Nov 2025 15:17:02.549 # Redis is now ready to exit, bye bye... 2025-11-02 15:17:06.304 UTC [2547] LOG: database system is shut down
FAILED -------------------- Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate failed with return #<Process::Status: pid 4308 exit 1> Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:inspawn’exec failed with the params “cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate” bootstrap failed with exit code 1 ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one. ./discourse-doctor may help diagnose the problem. `
EDIT: Encontré esto en los logs. No voy a hacer nada hasta que ejecute doctor y busque errores. 2025-11-02 16:10:09.680 UTC [6244] postgres@c_discourse LOG: provided user name (postgres) and authenticated user name (discourse) do not match 2025-11-02 16:10:09.680 UTC [6244] postgres@c_discourse FATAL: Peer authentication failed for user "postgres" 2025-11-02 16:10:09.680 UTC [6244] postgres@c_discourse DETAIL: Connection matched pg_hba.conf line 89: "local all postgres peer"
Para cerrar este hilo, ejecuté doctor y encontré el error de alter. Dado que la base de datos estaba en ejecución, ejecuté el comando alter en las bases de datos involucradas en multisitio, volví a ejecutar la compilación y ahora están migradas. El acceso del usuario a la base de datos persiste, pero iniciaré otro hilo para eso.
Nuevamente, gracias a todos por llevarme a este punto.