Come contrassegnare i post importati come letti

Sto attualmente lavorando all’importazione di dati da un forum sviluppato su misura verso Discourse. Il forum legacy ha circa 30.000 argomenti e idealmente vorrei segnare tutti come letti durante il processo di importazione. Se ho capito correttamente, la tabella rilevante qui è post_timings.

La mia domanda è: è sufficiente aggiungere una voce in post_timings per l’ultimo post in ogni argomento per ogni utente? Oppure dovrei aggiungere una voce per ogni post, circa 700.000 post * 2.000 utenti?

Aggiungo solo alcuni dettagli sul mio caso specifico: il software del forum legacy da cui stiamo migrando è limitato ma semplice, e i nostri membri hanno un’ampia gamma di età e livelli di competenza tecnica. Abbiamo configurato un’istanza di Discourse per permettere ai membri di provarla mentre ci prepariamo alla migrazione e abbiamo ricevuto alcuni commenti secondo cui risulta piuttosto travolgente.

Penso che si tratti semplicemente della curva di apprendimento: lo sento anch’io, in una certa misura, e sono un professionista IT. Una volta che le persone si abitueranno al cambiamento, credo che vedranno che Discourse rappresenta un chiaro miglioramento rispetto al software legacy.

Ciò che mi preoccupa è perdere utenti prima che raggiungano quella fase. Se gli utenti vengono reindirizzati al primo post di un argomento con 1.000 messaggi la prima volta che qualcuno risponde a un thread importato, ciò rappresenta un grave danno all’usabilità e ritengo che alcuni membri potrebbero semplicemente arrendersi. Quindi sono molto interessato a segnare tutti i post importati come letti e permettere agli utenti di passare direttamente al nuovo materiale.

Ho cercato nell’archivio prima di pubblicare questo messaggio, ma non ho trovato nulla che rispondesse a questa domanda specifica.

Credo che ci sia probabilmente un modo più semplice per farlo durante una migrazione, forse @gerhard lo saprebbe?

Ciao @gerhard, hai qualche informazione su come segnare gli argomenti importati come letti?

È necessario creare record nella tabella topic_users e nella tabella post_timings. Puoi utilizzare i metodi presenti nei modelli TopicUser e PostTiming oppure procedere in modo più efficiente utilizzando SQL.

Di seguito un esempio tratto dallo script di importazione di base che segna i post come letti per i loro autori. Dovrai adattarlo al tuo caso d’uso.