/leer gepostet mit einem phpbb3 Import

Ich habe einen phpbb3-Import für eine Website durchgeführt. Der Admin-Benutzer hat Tausende von Beiträgen, und das wird auf der Benutzerzusammenfassungsseite und unter https://estude.profcaju.com/u/USER/activity angezeigt, aber wenn dieser Benutzer /posted besucht, erhält er nur Themen seit dem Import.

Wenn ich mir ein importiertes Thema ansehe, das vom Benutzer erstellt wurde, und das Topicuser für dieses Thema/diesen Benutzer aufrufe, ist posted auf false gesetzt. Ich habe alle ensure_consistency-Dinge ausgeführt, die ich finden kann (TopicUser, Topic, User).

Wenn ich posted in einem TopicUser auf true setze, wird es unter /posted angezeigt.

Sollte ich etwas wie TopicUser.where(user_id: 1).update_all(posted: true) tun? Sollte ich das für alle Benutzer tun?

4 „Gefällt mir“

Danke, dass du das gemeldet hast, Jay!

Es scheint ein Problem mit der ensure_consistency-Rake-Aufgabe zu geben. Ich habe gerade eine Migration überprüft, an der ich gerade arbeite (die ensure_consistency-Aufgabe noch nicht ausgeführt) und die TopicUser-Datensätze wurden bereits mit posted: false (dem Standardwert) erstellt. Wenn die Rake-Aufgabe diesen Punkt erreicht, wird ein Fehler vom Typ „duplicate key“ generiert und die Datensätze werden aufgrund von ON CONFLICT DO NOTHING nicht erstellt.

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

Die TopicUser-Datensätze werden während des create_topic-Schritts erstellt, genauer gesagt hier: discourse/lib/topic_creator.rb at main · discourse/discourse · GitHub.

Ich habe einen PR mit einer Korrektur eröffnet, den du jetzt ausführen könntest:

5 „Gefällt mir“