Se voglio ricostruire il conteggio delle reazioni e il riepilogo, c’è un modo per farlo?
Ad esempio: bundle exec rake reactions:recount
Se voglio ricostruire il conteggio delle reazioni e il riepilogo, c’è un modo per farlo?
Ad esempio: bundle exec rake reactions:recount
Sarebbe coperto dal job in background jobs::EnsureDbConsistency?
Puoi attivarlo manualmente dalla tua pagina /sidekiq/scheduler se vuoi accelerarlo e vedere se questo ricostruisce i tuoi conteggi.
Comunque, se puoi entrare un po’ più nel dettaglio sul motivo per cui hai bisogno di ricalcolarli, potrebbe aggiungere un po’ di contesto extra che potrebbe essere importante.
Grazie per la tua risposta. Stavo eseguendo l’importazione di test delle reazioni da Xenforo a Discourse. I dati sono stati importati correttamente ma non vengono visualizzati sui post con nome utente e tutto il resto.
Ora sono riuscito a farlo.
Ho usato questo script
RAILS_ENV=production bundle exec rails runner "
counts = DiscourseReactions::ReactionUser.group(:reaction_id).count
DiscourseReactions::Reaction.where(id: counts.keys).find_each do |reaction|
reaction.update_column(:reaction_users_count, counts[reaction.id])
end
posts_to_update = Post.where(id: DiscourseReactions::Reaction.select(:post_id).distinct)
posts_to_update.find_each do |post|
post_reactions = post.reactions.where('reaction_users_count > 0')
custom_field_value = post_reactions.map do |reaction|
{
id: reaction.reaction_value,
type: reaction.reaction_type,
count: reaction.reaction_users_count
}
end
if custom_field_value.present?
post.custom_fields['discourse_reactions_reactions'] = custom_field_value.to_json
else
post.custom_fields.delete('discourse_reactions_reactions')
end
post.save_custom_fields(true)
"