Comment reconstruire le nombre de messages ou de réactions ?

Si je souhaite reconstruire le nombre de réactions et le résumé, existe-t-il un moyen de le faire ?

Par exemple : bundle exec rake reactions:recount

Est-ce que ce serait couvert par la tâche de fond jobs::EnsureDbConsistency ?

Vous pouvez la déclencher manuellement depuis votre page /sidekiq/scheduler si vous voulez accélérer le processus et voir si cela reconstruit vos comptages pour vous.

Bien que si vous pouviez donner un peu plus de détails sur la raison pour laquelle vous avez besoin de les recalculer, cela pourrait ajouter un contexte supplémentaire qui pourrait être important.

2 « J'aime »

Merci pour votre réponse. Je faisais l’importation de test des réactions de XenForo vers Discourse. Les données ont été correctement importées mais ne s’affichaient pas sur les publications avec le nom d’utilisateur et tout.

J’ai réussi à le faire maintenant.

J’ai utilisé ce 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)

  "
2 « J'aime »