Can the topic count for a category be forced to update after the topics have been moved to a different category?
I used this method to move topics around after merging two forums, but the counts are still off after 1.5 days.
Can the topic count for a category be forced to update after the topics have been moved to a different category?
I used this method to move topics around after merging two forums, but the counts are still off after 1.5 days.
It would be nice if they did! However, that didn’t work out for us when we did a similar move.
The following Ruby code, executed in the Rails console, will either fix the issue or set your database on fire , so backup accordingly
Category.find_each { |c|
c.topic_count = Topic.where(category: c).count - 1 # -1 for about post
c.save!
}
(I’d still love for these to be re-counted occasionally, just as I’d do for post counts )
Yes this is happenings once a day, doing this to update the counts:
https://github.com/discourse/discourse/blob/master/app/models/category.rb#L137-L151
Seems to work for me.
@fefrei @omarfilip Please go to sidekiq scheduler (/sidekiq/scheduler
) and see what the last run of CategoryStats shows.
I’ve triggered mine manually yesterday so the scheduler won’t mean much right now:
The manual triggering of CategoryStats did not change the counts, though.
I ran Felix’s ruby code earlier today and that dropped the topic counts in the empty categories. It did not increase the topic count elsewhere like I thought it would.
I had also triggered that job manually, as far as I recall. It completed successfully, but had no effect.
Mine also ran but didn’t change the counts. I also have one which is -1
as well.
I will run the code from @fefrei and see if that makes a difference.
Edit: running the code worked in the rails console