Ho avuto un piccolo forum di discussione per alcuni anni e funziona bene. Ho impostato backup automatici, ma non ho aggiornato la versione di discourse per molto tempo.
Il server è morto, ma ho un backup. Il backup risale alla vecchia versione di discourse, circa 2 anni fa. Quando provo a installare la versione più recente e a ripristinare dal backup, non funziona. Quando provo a installare la vecchia versione, non è possibile: lo script di installazione scarica automaticamente nuovi commit e l’ultima immagine docker, ho persino trovato queste righe nello script di avvio e le ho eliminate, ma del codice interno nell’immagine docker controlla e aggiorna anche git all’ultima versione.
Cosa dovrei fare? Come posso eseguire la vecchia versione di discourse o ripristinare il vecchio backup su una nuova versione?
Se vuoi aiuto, dovrai essere più specifico. Dovrebbe funzionare. C’è una buona probabilità che il problema non funzioni nemmeno se fossi in grado di installare la stessa versione di Discourse che avevi allora.
Qual è stato l’errore che hai ricevuto quando hai cercato di ripristinare?
Non ci sono errori critici nell’output di ./launcher logs app, ma il forum non funziona. Quasi tutti i pulsanti non funzionano, non ci sono argomenti e l’HTML sembra strano (la pagina iniziale buggata si ripete e può essere scansionata all’infinito verso il basso).
Non sono un tecnico professionista e spero che tu possa dirmi quali log posso aggiungere al mio report e dove trovarli.
Attualmente non riesco ad accedere ad alcun dato dal forum, anche se ho un backup. Vengono visualizzati solo il logo e i tag del forum e tutti i pulsanti sono inutilizzabili.
I registri di produzione di Rails non contengono errori critici, product_errors.log è vuoto.
Log degli errori di Unicorn
OID sconosciuto 17246: impossibile riconoscere il tipo di 'embeddings'. Verrà trattato come String.
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 2 EOFError subscribe fallito, riconnessione tra 1 secondo. Stack di chiamate /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'
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Errore nel recupero del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Errore nel recupero del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Errore nel recupero del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Errore nel recupero del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Errore nel recupero del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 heartbeat: Connessione rifiutata - connect(2) per 127.0.0.1:6379
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 3 Eccezione del job: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) sidekiq-exception
Impossibile segnalare errore: Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) 2 Connessione rifiutata - connect(2) per 127.0.0.1:6379 (redis://localhost:6379) subscribe fallito, riconnessione tra 1 secondo. Stack di chiamate /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 sconosciuto 17246: impossibile riconoscere il tipo di 'embeddings'. Verrà trattato come String.
I log di Sidekiq sono vuoti.
Nessun problema nei log di Nginx.
Vedo un problema di connessione redis nei log di Unicorn, ma i log di Redis stessi non hanno errori:
9706:C 28 Aug 2025 15:11:25.025 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 0 MB
881:M 28 Aug 2025 15:11:25.106 * Salvataggio in background terminato con successo
881:M 28 Aug 2025 15:16:26.096 * 100 modifiche in 300 secondi. Salvataggio in corso...
881:M 28 Aug 2025 15:16:26.097 * Salvataggio in background avviato dal processo 10037
10037:C 28 Aug 2025 15:16:26.109 * DB salvato su disco
10037:C 28 Aug 2025 15:16:26.109 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 0 MB
881:M 28 Aug 2025 15:16:26.198 * Salvataggio in background terminato con successo
881:M 28 Aug 2025 15:21:27.004 * 100 modifiche in 300 secondi. Salvataggio in corso...
881:M 28 Aug 2025 15:21:27.004 * Salvataggio in background avviato dal processo 10365
10365:C 28 Aug 2025 15:21:27.019 * DB salvato su disco
10365:C 28 Aug 2025 15:21:27.019 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 0 MB
881:M 28 Aug 2025 15:21:27.105 * Salvataggio in background terminato con successo
881:M 28 Aug 2025 15:26:28.030 * 100 modifiche in 300 secondi. Salvataggio in corso...
881:M 28 Aug 2025 15:26:28.031 * Salvataggio in background avviato dal processo 10703
10703:C 28 Aug 2025 15:26:28.050 * DB salvato su disco
10703:C 28 Aug 2025 15:26:28.051 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 0 MB
881:M 28 Aug 2025 15:26:28.132 * Salvataggio in background terminato con successo
881:M 28 Aug 2025 15:31:29.094 * 100 modifiche in 300 secondi. Salvataggio in corso...
881:M 28 Aug 2025 15:31:29.095 * Salvataggio in background avviato dal processo 11028
11028:C 28 Aug 2025 15:31:29.109 * DB salvato su disco
11028:C 28 Aug 2025 15:31:29.110 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 0 MB
881:M 28 Aug 2025 15:31:29.196 * Salvataggio in background terminato con successo
Grazie, ha aiutato e il forum funziona (non perfettamente, ma posso accedere agli argomenti con il contesto).
Tuttavia, il forum senza modalità provvisoria è inutilizzabile e non ricordo esattamente quali plugin ho installato. L’elenco dei plugin dovrebbe essere in app.yml, ma il server è morto e ho solo un backup, che non contiene app.yml, per quanto ne so. Cosa dovrei fare per ripristinare il forum e rimuovere i plugin non funzionanti?
Il ripristino senza utilizzare un file app.yml esistente non dovrebbe installare alcun plugin ad eccezione di quelli inclusi (che sono tutti ufficiali).
Tuttavia, temi e componenti a tema sono inclusi nel backup, quindi prova a disattivarli.
Prova a utilizzare la modalità sicura e disabilita solo temi e componenti per assicurarti che i tuoi problemi siano causati da uno di essi.
Grazie, funziona davvero solo senza temi, ma dove posso trovare i temi? Nel backup vedo solo due elementi: dump.sql.gz e la cartella uploads, che contiene solo media e file dell’utente.
Puoi semplicemente accedere ai temi dall’interfaccia di amministrazione. Puoi prima disabilitarli tutti e poi attivarli uno alla volta (o come preferisci).