Ripristinare messaggi cancellati?

Ciao a tutti,

Sono un revisore in un sito che utilizza il motore Discourse. Uno dei membri ha cancellato circa 1300 messaggi. Il sistema sposta automaticamente le risposte a questo messaggio alla fine dell’argomento. Disponiamo di una funzionalità di ripristino in batch?

Se hai un’installazione self-hosted, puoi eseguirlo dalla console di Rails. Se invece sei in un ambiente ospitato, puoi contattare l’assistenza.

Potresti trovare alcuni suggerimenti in Operazioni di massa amministrative.

Qualcosa del genere:

t=Topic.all.with_deleted.where("deleted_at is not null").where(user_id: 123)
t.update_all(deleted_at: nil, deleted_by_id: nil)

Ma credo che dovrai poi eseguire un’altra operazione per aggiornare alcune altre tabelle.

Puoi descrivere esattamente come ha fatto? In un’installazione predefinita di Discourse, un utente normale è soggetto a limiti di velocità per quanto riguarda la cancellazione e le cancellazioni richiedono 24 ore per essere effettive.

Penso che abbia cancellato cinque post ogni giorno.

Capisco. Si tratta di eliminazioni soft, quindi dovresti poterle annullare, sia tramite l’interfaccia utente che da riga di comando, se accedi al server via SSH.

Puoi ridurre il numero di eliminazioni consentite al giorno nelle impostazioni del sito di amministrazione per evitare che ciò accada in futuro; è in discussione la possibilità di impostare lo zero in quella configurazione, in modo da prevenire tutte le eliminazioni.

Possiamo assicurarci che l’impostazione a zero venga supportata la prossima settimana @sam? E aggiornare il testo attorno all’impostazione in modo che le persone sappiano che è presente.

Eseguito tramite:

Impostando max_post_deletions_per_minute o max_post_deletions_per_day a 0 si disabiliterà l’auto-cancellazione dei post.