Grazie per aver segnalato questo, Jay!
Sembra un problema con il task rake ensure_consistency. Ho appena controllato una migrazione su cui sto lavorando ora (non ho ancora eseguito il task ensure_consistency) e i record TopicUser sono già stati creati con posted: false (il default). Quando il task rake raggiunge questo punto genera un errore “duplicate key” e i record non vengono creati a causa di ON CONFLICT DO NOTHING
def insert_topic_users
log "Inserting topic users..."
DB.exec <<-'SQL'
INSERT INTO topic_users (user_id, topic_id, posted, last_read_post_number, first_visited_at, last_visited_at, total_msecs_viewed)
SELECT user_id, topic_id, 't' , MAX(post_number), MIN(created_at), MAX(created_at), COUNT(id) * #{MS_SPEND_CREATING_POST}
FROM posts
WHERE user_id > 0
GROUP BY user_id, topic_id
ON CONFLICT DO NOTHING
SQL
end
I record TopicUser vengono creati al passaggio create_topic, più specificamente qui discourse/lib/topic_creator.rb at main · discourse/discourse · GitHub.
Ho aperto una PR con una correzione che potresti eseguire ora: