Como reconstruir a contagem de posts ou reações

Se eu quiser reconstruir a contagem de reações e o resumo, existe alguma forma de fazer isso?

Tipo: bundle exec rake reactions:recount

Isso seria coberto pelo job em background jobs::EnsureDbConsistency?

Você pode acioná-lo manualmente na sua página /sidekiq/scheduler se quiser acelerar o processo e ver se isso reconstrói suas contagens para você.

No entanto, se você puder detalhar um pouco mais por que precisa recalculá-las, isso pode adicionar algum contexto extra que pode ser importante.

2 curtidas

Obrigado pela sua resposta. Eu estava fazendo a importação de teste de reações do XenForo para o Discourse. Os dados foram importados corretamente, mas não estão aparecendo nas postagens com nome de usuário e tudo mais.

Consegui fazer isso agora.

Usei este 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 curtidas