Elimina in blocco tutti gli argomenti in una categoria

:bookmark: Questa guida fornisce istruzioni su come eliminare in blocco tutti i topic all’interno di una categoria su un’istanza Discourse self-hosted.

:person_raising_hand: Livello utente richiesto: Amministratore di sistema

:warning: È necessario l’accesso SSH al server

La rimozione di tutti i topic da una categoria può essere necessaria per vari motivi, come il riorganizzazione dei contenuti o la cancellazione di discussioni obsolete. Questa guida illustra i passaggi per eseguire questa operazione in modo sicuro su un server Discourse self-hosted.

:warning: Questa è un’azione distruttiva. Assicurati di eseguire un backup del tuo forum prima di procedere

Passaggi per eliminare i topic in una categoria

  1. Identifica lo slug della categoria: è il nome utilizzato nell’URL della categoria.
  2. Accedi al tuo server: Utilizza SSH per accedere al tuo server.
ssh username@your-server.com
  1. Naviga nella directory di Discourse:
cd /var/discourse
  1. Entra nell’applicazione Discourse:
./launcher enter app
  1. Esegui il comando di eliminazione: Sostituisci \"mycategory\" con lo slug della tua categoria.
rake destroy:topics[\"mycategory\"]

:information_source: Questo processo potrebbe richiedere tempo a seconda del numero di topic.

Eliminazione di topic nelle sottocategorie

Per eliminare i topic in una sottocategoria, includi lo slug della categoria padre nel comando. Ad esempio:

rake destroy:topics[\"childcategory\",\"parentcategory\"]

Eliminare tutti i topic in tutte le categorie

:warning: Questa azione cancellerĂ  tutti i topic da ogni categoria!

rake destroy:topics_all_categories

Domande Frequenti

Per quanto tempo Discourse conserva i topic eliminati? Posso ancora accedere ai topic con un link diretto.

I topic rimangono nel database dopo l’eliminazione. Solo lo staff potrà ancora vedere i topic eliminati.

Come posso eliminare definitivamente i topic dal database?

Puoi eliminare definitivamente i post (e i loro topic) dal database utilizzando l’attività rake destroy:posts. Questo richiede che sia prima abilitata l’impostazione del sito nascosta can_permanently_delete. Passa gli ID dei post come una lista separata da virgole:

rake destroy:posts[4,8,15,16,23,42]

Puoi anche inviare gli ID dei post da un file:

cat post_ids.txt | rake destroy:posts

È possibile limitare l’eliminazione dei topic a un periodo di tempo (tra due date)?

Dovresti farlo dalla console Rails, un comando simile al seguente dovrebbe funzionare:

 Topic.where(\"created_at.....\").each do |t|
   first_post = t.ordered_posts.first
   PostDestroyer.new(Discourse.system_user, first_post).destroy if first_post
 end

Come trovo lo slug o l’ID della mia categoria?

L’attività destroy:topics utilizza lo slug della categoria (il nome nell’URL della categoria). Puoi elencare tutte le categorie con i loro ID e slug eseguendo:

rake categories:list

Informazioni Aggiuntive

Per maggiori informazioni su altre operazioni amministrative, consulta:

21 Mi Piace