È possibile eliminare i post dal database?

Chiedo scusa in anticipo se la domanda è troppo da principiante.
Ho accesso al database di Discourse (tramite il plugin).
Posso eliminare alcuni dei post (che ho creato io stesso in grandi quantità durante i test) utilizzando una query?

delete from posts where id in (123, 567, ... etc)

È sicuro eseguire tali operazioni?

Se stai accedendo al database tramite il plugin Data Explorer, tieni presente che tale plugin consente solo query in sola lettura. Non è possibile utilizzarlo per scrivere nel database.

È possibile eliminare completamente i post dalla console Rails, ma non consigliamo di farlo. Il metodo migliore consiste nell’utilizzare il plugin Data Explorer per individuare i post da eliminare e poi impiegare gli strumenti disponibili nell’interfaccia utente di Discourse per rimuoverli.

Se per qualche motivo questo approccio non funziona per te, faccelo sapere e possiamo fornirti dettagli sull’eliminazione dei post dalla console Rails.

Non sono un esperto di questo motore, ma suppongo che non sia sicuro, perché in questo modo eliminerai solo l’entry dalla tabella posts, mentre un post può avere entry collegate in altre tabelle e molte informazioni meta collegate a quel post_id. In seguito, qualcosa potrebbe rompersi. Quindi dovresti utilizzare gli strumenti integrati per l’eliminazione dei post.

Grazie, Nikolay.
Penso anch’io… Ma improvvisamente arriveranno veri esperti di questa applicazione e diranno: sentitevi liberi di cancellare! )))

Tranne che nessun esperto afferma che sia accettabile:

  • Non è raccomandato.
  • Non è previsto nella roadmap di Discourse e non ci sono piani per aggiungerlo.
  • Non viene sviluppato perché un’eliminazione permanente non può essere annullata.
  • Nessuno ha pagato per lo sviluppo di questa funzionalità.

Nessuno che l’ha richiesta ha sviluppato questa funzionalità perché è troppo difficile o non vale il costo dello sviluppo.

Consulta questo argomento per esempi relativi a questi punti:

Non direi di essere un esperto, ma nel corso degli anni ho esaminato, analizzato e lavorato con file e codice abbastanza frequentemente.

Ho visto abbastanza cose da convincermi che, da solo, non ho le conoscenze necessarie per fare altro che sperimentare in locale. Ciò che ho visto, e ciò che non ho visto, mi fa riflettere.

Non ho mai visto un singolo ON DELETE CASCADE. Ho invece visto molti has_many, dependent:, Indexes e ensure_consistency in numerosi file di modelli. Esiste un file di job: discourse/app/jobs/scheduled/ensure_db_consistency.rb at main · discourse/discourse · GitHub

Personalmente, per quanto mi piaccia Discourse, non mi aspetterei che si faccia carico delle conseguenze di azioni che escono dai meccanismi di sicurezza principali. Cioè, spesso rompo il mio stesso codice, ma ne assumo la piena responsabilità quando succede. Ma questo sono io. E certamente potrebbe esserci del codice principale da qualche parte di cui non sono ancora a conoscenza.

Inoltre,

Ma nel caso dell’OP sarebbe inutile.