/postato vuoto con un'importazione phpbb3

Ho eseguito un’importazione phpbb3 per un sito. L’utente amministratore ha migliaia di post, e questo è elencato nella pagina di riepilogo dell’utente e in https://estude.profcaju.com/u/USER/activity ma quando quell’utente visita /posted vede solo gli argomenti dall’importazione.

Quando guardo un argomento importato creato dall’utente, e recupero Topicuser per quell’argomento/utente, posted è impostato su false. Ho eseguito tutte le ensure_consistency che ho trovato (TopicUser, Topic, User).

Se imposto posted su true in un TopicUser, apparirà in /posted.

Dovrei fare qualcosa come TopicUser.where(user_id: 1).update_all(posted: true)? Dovrei farlo per tutti gli utenti?

4 Mi Piace

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:

5 Mi Piace