Columna indefinida 'boomarks.post_id' después de la actualización

Después de actualizar mi instalación de discourse de 2.9.0.beta9 a 2.9.0.beta11, la instalación se congeló por completo, ya que todas las llamadas que listan temas devuelven de repente la columna bookmarks.post_id no existe

He rastreado el commit que elimina esta columna hasta f8939bd294ff6822a61fb653b44a4df351321f54, que elimina la columna de la base de datos. El problema también ocurre en modo seguro, por lo que no creo que un plugin sea el culpable.

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/content_security_policy/middleware.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```
Cualquier ayuda es apreciada.
1 me gusta

Lo he solucionado por ahora volviendo a añadir la columna a la base de datos, pero creo que la causa raíz debería solucionarse en su lugar :grimacing:

Estaré encantado de volver a eliminar la columna si necesitas más diagnósticos.

2 Me gusta

Estoy muy confundido, esta ha sido una columna ignorada durante bastante tiempo.

@martin necesitaba eliminarla, ya no es algo que usemos.

¿Tienes una configuración personalizada? ¿Hay algún plugin especial involucrado? ¿Fue el error algo “transicional” que ocurrió cuando se ejecutó la migración? (Esperaría este error posiblemente durante la actualización en vivo desde la interfaz web en condiciones anómalas)

1 me gusta

Encontré el mismo problema al actualizar hoy. Volver a agregar la columna post_id ayudó a solucionarlo.

Pasos:

  1. Entra en el contenedor de discourse
./launcher enter app
  1. Entra en psql
sudo -u postgres psql discourse
  1. Vuelve a agregar la columna post_id en la tabla bookmarks
ALTER TABLE bookmarks ADD COLUMN post_id int;
2 Me gusta

Estoy usando la configuración predeterminada de Docker con algunos complementos, pero pude reproducirlo en modo seguro. Además, los rastreos de pila no contienen referencias obvias a complementos.

Actualizado usando una reconstrucción completa sin errores durante la migración. También intenté volver a ejecutar las migraciones, lo que no informó cambios.

1 me gusta

Estoy confundido…

¿Puedes intentar

  1. Eliminar la columna de nuevo
  2. Reiniciar tu contenedor ./launcher restart app

¿Persiste el error?

No debería ser necesario añadir la columna.

1 me gusta

Ya he intentado reiniciar al encontrar el error por primera vez. Solo para verificar, lo he hecho de nuevo y el error persiste. ¿Podría un componente de tema estar causando problemas? El componente de tema topic-list-preview fue una de las similitudes que he identificado entre nuestra instancia y krita-artists.org mencionada aquí: Oops. The software powering this discussion forum encountered an unexpected problem - #10 by raghukamath

2 Me gusta

Es muy poco probable que un componente de tema desencadene esto, ¿cuál es la lista completa de plugins que utilizas?

¿Te importaría intentarlo una vez más?

1 me gusta

Encontré el problema :partying_face: Resultó ser un problema de plugin :sweat_smile:

Las versiones anteriores del componente de tema Topic List Previews (TLP) se distribuyeron como un plugin y luego se dividieron en un plugin y un componente de tema. Durante esta división inicial, se instruyó a los usuarios a cargar el plugin desde una nueva rama. Sin embargo, con el tiempo, la rama se abandonó y ya no se mantuvo. Después de cambiar a la bifurcación mantenida, todo vuelve a funcionar.

6 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.