Come ricostruire il conteggio di post o reazioni

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)

"