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
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.
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)
"