/publicado vacío con una importación de phpbb3

Hice una importación de phpbb3 para un sitio. El usuario administrador tiene miles de publicaciones, y eso aparece en la página de resumen del usuario y en https://estude.profcaju.com/u/USER/activity, pero cuando ese usuario visita /posted, solo ve los temas desde la importación.

Cuando miro un tema importado que fue creado por el usuario, y busco Topicuser para ese tema/usuario, posted está configurado como falso. He ejecutado todas las ensure_consistency que he encontrado (TopicUser, Topic, User).

Si configuro posted como verdadero en un TopicUser, aparecerá en /posted.

¿Debería hacer algo como TopicUser.where(user_id: 1).update_all(posted: true)? ¿Debería hacer eso para todos los usuarios?

4 Me gusta

¡Gracias por informar, Jay!

Parece un problema con la tarea ensure_consistency de Rake. Acabo de revisar una migración en la que estoy trabajando ahora (aún no he ejecutado la tarea ensure_consistency) y los registros de TopicUser ya se crearon con posted: false (el valor predeterminado). Cuando la tarea Rake llega a este punto, genera un error de “clave duplicada” y los registros no se crean debido a 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

Los registros de TopicUser se crean en el paso create_topic, más específicamente aquí discourse/lib/topic_creator.rb at main · discourse/discourse · GitHub.

Abrí una PR con una solución que podrías ejecutar ahora:

5 Me gusta