Restaurar versión específica de copia de seguridad de discourse

Tuve un pequeño foro de discusión durante unos años y funciona bien. Configuré copias de seguridad automáticas, pero no actualicé la versión de Discourse durante mucho tiempo.

El servidor murió, pero tengo una copia de seguridad. La copia de seguridad es de la versión antigua de Discourse, de hace unos 2 años. Cuando intento instalar la versión más reciente y restaurar desde la copia de seguridad, no funciona. Cuando intento instalar la versión antigua, no es posible: el script de configuración extrae automáticamente los nuevos commits y la última imagen de Docker, incluso encontré estas líneas en el script del lanzador y las eliminé, pero algún código interno de la imagen de Docker también verifica y actualiza Git a la última versión.

¿Qué debería hacer? ¿Cómo puedo ejecutar la versión antigua de Discourse o restaurar la copia de seguridad antigua en una versión nueva?

Si quieres ayuda, tendrás que ser más específico. Debería funcionar. Hay una buena posibilidad de que el problema tampoco funcione si pudiste instalar la misma versión de Discourse que tenías entonces.

¿Qué error obtuviste cuando intentaste restaurar?

No hay errores críticos en la salida de ./launcher logs app, pero el foro no funciona. Casi todos los botones no funcionan, no hay temas y el HTML se ve extraño (la página de inicio con errores se repite y se puede desplazar hasta el final sin límite).

No soy un técnico profesional y espero que puedas decirme qué registros puedo añadir a mi informe y dónde encontrarlos.

¿Alguien sabe dónde puedo encontrar registros confiables?

¿Hay algún error en la ruta /logs de tu foro?

El problema es que no puedo acceder a /logs - “esta página no existe o es privada”. Y no puedo iniciar sesión para comprobarlo.

Intenta usar el inicio de sesión de administrador en https://forum.example.com/u/admin-login[1].


  1. ¡Siempre se aprende algo nuevo! ↩︎

Gracias por el enlace, pero no funcionará. Envía un correo electrónico, pero no tengo servidor smtp y estoy usando este plugin: Disable Email Verification for Discourse Plugin

¿Quizás, algunos comandos de consola en el servidor son posibles para comprobar qué sucedió?

Según tengo entendido, ese plugin está roto. Quizás no quieras usarlo.

1 me gusta

No había ninguna solución diferente para permitir a los usuarios crear cuentas sin confirmación por correo electrónico cuando creé un servidor.

Tal vez ahora esté roto, pero al menos estoy intentando restaurar la versión anterior del foro.

1 me gusta

Actualmente no puedo acceder a ningún dato del foro, aunque tengo una copia de seguridad. Solo se muestran el logo y las etiquetas del foro, y todos los botones son inutilizables.

1 me gusta

Ay, eso complica las cosas. ¿Podrías intentar lo que se menciona aquí para obtener algunos registros?

¿Intentaste el modo seguro?

Y comenta el plugin que no funciona, y quizás otros plugins que tengas. Puedes volver a añadirlos una vez que consigas que algo funcione.

Los registros de producción de Rails no contienen errores críticos, product_errors.log está vacío.

Registros de errores de Unicorn OID desconocido 17246: no se pudo reconocer el tipo de 'embeddings'. Se tratará como String. Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 2 subscribe fallido, reconectando en 1 segundo. Pila de llamadas /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:103:in `rescue in read' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:94:in `read' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:535:in `next_event' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:66:in `subscription' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:17:in `subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:175:in `_subscription' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/pubsub.rb:17:in `subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:293:in `global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread' Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Error al obtener el trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Error al obtener el trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Error al obtener el trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Error al obtener el trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Error al obtener el trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 heartbeat: Conexión rechazada - connect(2) para 127.0.0.1:6379 Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 3 Excepción del trabajo: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) sidekiq-exception Error al reportar error: Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) 2 Conexión rechazada - connect(2) para 127.0.0.1:6379 (redis://localhost:6379) subscribe fallido, reconectando en 1 segundo. Pila de llamadas /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `__connect_nonblock' /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `connect_nonblock' /usr/local/lib/ruby/3.3.0/socket.rb:60:in `connect_internal' /usr/local/lib/ruby/3.3.0/socket.rb:141:in `connect' /usr/local/lib/ruby/3.3.0/socket.rb:647:in `block in tcp' /usr/local/lib/ruby/3.3.0/socket.rb:231:in `each' /usr/local/lib/ruby/3.3.0/socket.rb:231:in `foreach' /usr/local/lib/ruby/3.3.0/socket.rb:637:in `tcp' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:120:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/connection_mixin.rb:11:in `reconnect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:769:in `block in connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/middlewares.rb:12:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:768:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:759:in `raw_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:719:in `ensure_connected' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:314:in `call_v' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/strings.rb:191:in `get' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:366:in `process_global_backlog' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:279:in `block in global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:291:in `global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread' OID desconocido 17246: no se pudo reconocer el tipo de 'embeddings'. Se tratará como String.

Sidekiq logs are empty.

No problems in Nginx logs.

I see redis connection problem in Unicord logs, but Redis logs itself have no errors:

9706:C 28 Aug 2025 15:11:25.025 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:11:25.106 * Background saving terminated with success 881:M 28 Aug 2025 15:16:26.096 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:16:26.097 * Background saving started by pid 10037 10037:C 28 Aug 2025 15:16:26.109 * DB saved on disk 10037:C 28 Aug 2025 15:16:26.109 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:16:26.198 * Background saving terminated with success 881:M 28 Aug 2025 15:21:27.004 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:21:27.004 * Background saving started by pid 10365 10365:C 28 Aug 2025 15:21:27.019 * DB saved on disk 10365:C 28 Aug 2025 15:21:27.019 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:21:27.105 * Background saving terminated with success 881:M 28 Aug 2025 15:26:28.030 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:26:28.031 * Background saving started by pid 10703 10703:C 28 Aug 2025 15:26:28.050 * DB saved on disk 10703:C 28 Aug 2025 15:26:28.051 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:26:28.132 * Background saving terminated with success 881:M 28 Aug 2025 15:31:29.094 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:31:29.095 * Background saving started by pid 11028 11028:C 28 Aug 2025 15:31:29.109 * DB saved on disk 11028:C 28 Aug 2025 15:31:29.110 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:31:29.196 * Background saving terminated with success

Postgresql logs have no errors.

¿Cómo puedo habilitarlo?

Lo siento. Escribí “safe-mode” en lugar de “safe mode” y no me di cuenta de que no se había enlazado automáticamente.

Gracias, ayudó y el foro funciona (no correctamente, pero puedo acceder a los temas con contexto).

Sin embargo, el foro sin modo seguro es inutilizable, y no recuerdo exactamente qué plugins instalé. La lista de plugins debería estar en app.yml, pero el servidor está muerto y solo tengo una copia de seguridad, que no contiene app.yml, hasta donde sé. ¿Qué debo hacer para restaurar el foro y eliminar los plugins rotos?

Restaurar sin usar un app.yml existente no debería instalar ningún plugin excepto los incluidos (que son todos oficiales).

Sin embargo, los temas y los componentes de temas se incluyen en la copia de seguridad, así que intente desactivarlos.

Intente usar el modo seguro y desactive solo los temas y componentes para asegurarse de que sus problemas sean causados por uno de ellos.

2 Me gusta

Gracias, realmente funciona solo sin temas, pero ¿dónde puedo encontrar temas? En la copia de seguridad solo veo dos elementos: dump.sql.gz y la carpeta uploads, que solo contiene medios y archivos de usuario.

Puedes acceder a los temas desde la interfaz de administración. Primero puedes deshabilitarlos todos y luego activarlos uno por uno (o como prefieras).

1 me gusta