Wenn ich die Anzahl der Reaktionen und die Zusammenfassung neu erstellen möchte, gibt es dafür eine Möglichkeit?
Wie: bundle exec rake reactions:recount
Wenn ich die Anzahl der Reaktionen und die Zusammenfassung neu erstellen möchte, gibt es dafür eine Möglichkeit?
Wie: bundle exec rake reactions:recount
Würde dies durch den Hintergrundjob jobs::EnsureDbConsistency abgedeckt?
Du kannst ihn manuell über deine Seite /sidekiq/scheduler auslösen, wenn du ihn beschleunigen und sehen möchtest, ob er deine Zählungen neu aufbaut.
Wenn du jedoch etwas genauer erläutern kannst, warum du sie neu berechnen musst, könnte dies zusätzlichen Kontext liefern, der wichtig sein könnte.
Vielen Dank für Ihre Antwort. Ich habe den Testimport von Reaktionen von Xenforo nach Discourse durchgeführt. Die Daten wurden korrekt importiert, aber nicht auf Beiträgen mit Benutzernamen und allem angezeigt.
Habe es jetzt geschafft.
Dieses Skript wurde verwendet
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)
"