Temas principales no funcionan después de la importación

¿Hay alguna forma de que Discourse vuelva a calcular todos los Temas Principales en el perfil de un usuario después de una importación y/o el contador de enlaces en un tema?

Curiosamente, las Respuestas Principales funcionan correctamente.

Creo que las estadísticas se calculan automáticamente cada 24 horas. No deberías tener que hacer nada más que esperar.

Eso no parece ser el caso; llevamos varias semanas con una prueba de importación activa. Algunas cosas se autocorrigieron, pero otras no. El ejemplo más claro es “Top Topics”. La cantidad de enlaces en los temas es otro caso. Aparte de eso, todo parece correcto en todo el sitio.

Hmm, al examinar el código, tenemos dos trabajos: TopRefreshToday (se ejecuta cada hora) y TopRefreshOlder (se ejecuta cada 24 horas). Ambos llaman a métodos de aquí, los cuales deberías poder ejecutar manualmente desde la consola de Rails si es necesario.

¿Podrías revisar /sidekiq/scheduler para ver si ambos trabajos se han estado ejecutando?

Asumo que toda la información relevante para calcular los temas principales fue transferida con la importación, ¿verdad?

En este caso, estos trabajos se están ejecutando correctamente. El problema parece ser que el campo like_count en la tabla topics no está poblado. ¿Existe una buena manera de recalcular el valor de ese campo, o es algo que debe hacerse durante la importación? Si debe hacerse durante la importación, ¿cómo debería funcionar el cálculo? ¿Se trata de una suma de todos los “me gusta” de todas las publicaciones en el tema?

Encontré una forma usando la consola de Rails que parece recalcular este campo:

Topic.visible.map(&:update_statistics)

El problema con esta solución es que, para nuestras cantidades de temas y publicaciones, estimé que tomaría alrededor de dos meses que ese comando se completara.

Parece que puedes regenerar el like_count usando el método update_action_counts:

Así que quizás algo como:

Topic.all.find_each do |t|
  putc '.'
  t.update_action_counts
end

Parece que esto funcionó muy bien para @Ghan y para mí, ¡muchas gracias! :slight_smile: