When a post is deleted in Discourse, we perform a soft-delete. This means that post is still present in the database in case an administrator wants to recover it later. A soft-delete is not sufficient when the deleted post contains sensitive information and must be pruned from the database completely. For those situations, we are introducing the ability to permanently delete a post.
This feature was implemented under a hidden site setting because of how dangerous it can be, once a post is destroyed it cannot be recovered. As an additional protection mechanism, posts can be permanently deleted by the same administrator who deleted the post only after 5 minutes have passed OR by a different administrator immediately. If post cannot be deleted because none of the preconditions were met, it will show an error message:
I actually have the opposite question: isn’t there reduced performance from Discourse from only soft deleting posts instead always permanently deleting them? There must be some burden acumulated after some years for some forums. Is it done this way to keep statistics for each account even when posts/topics are removed?
First of all, I believe that most communities have many more visible posts than deleted posts. For example, here on Meta the total amount of posts is 1,015,386 and only 81,480 of these are deleted. That is less than 10%. Probably the total amount of deleted data is less than 100MB of data.
As Falco said, the performance impact of storing and indexing more data is negligible. Database systems are optimized to hold a lot more data than one can imagine and even the most simple configurations can hold thousands of thousands of data points without breaking a sweat.
Maybe this is not the best comparison in the world, but can you notice your PC getting slower as you store more files? Most probably no and the file system is some kind of database system too.
Thanks so much for this thread! I think it’s exactly what I am looking for. I had a few questions, if I enable this:
will I need to do a ./launcher rebuild app afterwards?
will the value be stored in the DB somewhere? Since its not in the admin UI I want to ensure if my VM gets wiped and I follow the Cloud install guide (using the same DB) that the setting will still be there.
I wasn’t sure a moderator could permanently delete, but I’ve had a test run to check and the option does appear in their post wrench. Though when I attempted it with a test moderator it gave me a ‘Sorry, an error has occurred’ message, but worked fine using an admin account.
Is there something extra I need to do to allow a moderator to do it?
I am a beginner in the world of hosting and wanted to ask you:
Where can I change the value you described?
Is there a config file in discourse folder? or do I need to change it somewhere in docker?