Colonna non definita 'boomarks.post_id' dopo l'aggiornamento

Dopo l’aggiornamento della mia installazione di discourse da 2.9.0.beta9 a 2.9.0.beta11, l’installazione si è completamente bloccata poiché tutte le chiamate che elencano gli argomenti restituiscono improvvisamente column bookmarks.post_id does not exist

Ho rintracciato il commit che rimuove questa colonna a f8939bd294ff6822a61fb653b44a4df351321f54 che rimuove la colonna dal database. Il problema si verifica anche in modalità sicura, quindi non credo che un plugin sia in colpa.

Stacktrace:

app/models/topic_list.rb:84:in `topics'
app/serializers/suggested_topics_mixin.rb:17:in `include_suggested_topics?'
(eval):6:in `_fast_attributes'
app/controllers/topics_controller.rb:1199:in `block (2 levels) in perform_show_response'
app/controllers/topics_controller.rb:1194:in `perform_show_response'
app/controllers/topics_controller.rb:169:in `show'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'
Failed to handle exception in exception app middleware : ActiveRecord::StatementInvalid : PG::UndefinedColumn: ERROR:  column bookmarks.post_id does not exist
LINE 1: ...marks\".\"bookmarkable_type\" FROM \"bookmarks\" WHERE \"bookmarks...\n```
Qualsiasi aiuto è apprezzato

L’ho risolto per ora aggiungendo nuovamente la colonna al database, ma penso che la causa principale debba essere risolta :grimacing:

Sono felice di rimuovere nuovamente la colonna se hai bisogno di ulteriori diagnosi.

Sono molto confuso, questa è stata una colonna ignorata per un bel po’ di tempo.

@martin doveva rimuoverla, non è più qualcosa che usiamo.

Hai una configurazione personalizzata? Sono coinvolti plugin speciali? L’errore è stato qualcosa di “transitorio” accaduto durante la migrazione? (Mi aspetterei questo errore possibilmente durante l’aggiornamento in tempo reale dall’interfaccia web in condizioni anomale)

Ho riscontrato lo stesso problema durante l’aggiornamento oggi. L’aggiunta della colonna post_id ha aiutato a risolverlo.

Passaggi:

  1. Entra nel container di discourse
./launcher enter app
  1. Entra in psql
sudo -u postgres psql discourse
  1. Riaggiungi la colonna post_id nella tabella bookmarks
ALTER TABLE bookmarks ADD COLUMN post_id int;

Sto usando la configurazione Docker predefinita con alcuni plugin, ma sono riuscito a riprodurlo in modalità provvisoria. Inoltre, gli stack trace non contengono riferimenti evidenti ai plugin.

Aggiornato utilizzando una ricostruzione completa senza errori durante la migrazione. Ho anche provato a rieseguire le migrazioni che non hanno riportato modifiche.

Sono confuso…

Puoi provare

  1. Rimuovere di nuovo la colonna
  2. Riavviare il tuo container ./launcher restart app

L’errore persiste?

L’aggiunta della colonna non dovrebbe essere necessaria.

Ho già provato a riavviare quando ho riscontrato l’errore per la prima volta. Giusto per verificare, l’ho fatto di nuovo e l’errore persiste. Potrebbe essere un componente del tema a causare problemi? Il componente del tema topic-list-preview è stata una delle somiglianze che ho identificato tra la nostra istanza e krita-artists.org menzionata qui: Oops. The software powering this discussion forum encountered an unexpected problem - #10 by raghukamath

È molto improbabile che un componente del tema attivi questo, qual è l’elenco completo dei plugin che utilizzi?

Potresti riprovare ancora una volta?

Ho trovato il problema :partying_face: Alla fine era un problema di plugin :sweat_smile:

Le versioni precedenti del componente tema Topic List Previews (TLP) venivano distribuite come plugin e poi suddivise in un plugin e un componente tema. Durante questa divisione iniziale, agli utenti è stato indicato di caricare il plugin da un nuovo branch. Tuttavia, col tempo, il branch è stato abbandonato e non più mantenuto. Dopo essere passati al fork mantenuto, tutto funziona di nuovo.