Come eliminare TUTTO dal mio forum e lasciare solo gli utenti?

È di gran lunga il modo più veloce e semplice.
Scarica il tuo elenco di utenti come suggerito da @JammyDodger, da /admin/users/list/active, scarica il file CSV, puliscilo per conservare solo gli indirizzi email ed effettua un invito di massa dalla tua interfaccia di amministrazione da una nuova installazione di Discourse. I tuoi utenti dovranno creare nuovamente un account.

Se vuoi eliminare tutti i dati tranne alcuni utenti, non c’è un modo semplice per farlo e posso solo pensare che provare potrebbe facilmente portare a un forum danneggiato.

Se vuoi esportare la maggior parte dei dati dei tuoi utenti (le loro impostazioni e altro), sarà anche difficile e richiederà la creazione di uno script ruby on rails. Inoltre, potresti riscontrare problemi a cui non ho pensato. Se non sei sicuro su come farlo, ti suggerisco di attenerti alla prima soluzione o di pubblicare in Marketplace se hai un budget.

1 Mi Piace

È vero. Ma se vuoi vivere pericolosamente, puoi provare questo:

./launcher enter app
discourse backup
rails c
Topic.where("user_id > 1").destroy_all
Upload.where("user_id > 1").destroy_all
exit
exit

Penso che l’eliminazione degli argomenti dovrebbe eliminare i post, ma potresti anche aggiungere

 Post.where("user_id > 0").destroy_all

Il > 1 lascerà gli argomenti creati dal primo utente. Se vuoi eliminarli anche quelli, cambialo in > 0, che lascerà gli argomenti creati da @system. Penso che ti pentirai molto se li elimini.

Questo crea un backup nel caso in cui distrugga tutto.

Questa è quasi certamente una cattiva idea, ma è quello che hai chiesto.

1 Mi Piace

Infatti! C’è la classe PostDestroyer per questo, che esegue molte pulizie aggiuntive necessarie.

@xebiyen puoi usare questo rake task per distruggere tutti gli argomenti in tutte le categorie, ma lasciare intatte le categorie e gli utenti:

$ ./bin/rake destroy:topics_all_categories
4 Mi Piace

Fantastico, non conoscevo questo task di rake. Rimuoverà gli argomenti “Informazioni”, che sarebbe un effetto collaterale indesiderato?

No, il metodo che utilizza li lascia in pace per impostazione predefinita e il task rake non modifica tale impostazione predefinita:

:rainbow:

1 Mi Piace

Grazie per averlo confermato. Volevo essere sicuro, perché uno o due dei metodi consigliati per altre cose elencati su Administrative Bulk Operations hanno avuto effetti collaterali indesiderati l’ultima volta che li ho usati.

Ne ho usato uno per spostare argomenti da una categoria all’altra, ma ha spostato l’argomento “about” insieme agli argomenti regolari. Potrei aver usato uno script rails invece del task rake, però. Non sono sicuro. :thinking:

Ho anche usato il metodo rake “sposta tutti gli argomenti con un tag specifico in una singola categoria”, che non ha popolato correttamente alcune tabelle relative ai tag nel database.


modifica: oh, è il mio Cake Day! Se solo la torta fosse reale… Ma forse lo è?

2 Mi Piace

Grazie! Avevo dimenticato quella classe e non conoscevo il rake task (o non ricordo di averlo dimenticato!)

2 Mi Piace

Che comando devo usare prima di questo comando?

@pfaffman @Canapin è il suo comando @leonardo la migliore soluzione allora?

Puoi provare da solo, ma fai prima un backup.
Vai nella tua cartella discourse dalla riga di comando.
Entra nel container con ./launcher enter app.
Poi scrivi rake destroy:topics_all_categories.

Guardalo in azione (la mia istanza di test è molto lenta):

4 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.