I would not call myself an expert, but I have looked at, analyzed, and played with files and code a fair bit over the years.
I have seen enough to convince myself that on my own I am not knowledgeable enough to do more than experiment in localhost. What I have seen, and not seen, cause pause.
I have not ever seen a single “
ON DELETE CASCADE”. I have seen a lot of “
dependent:”, “Indexes” and “
ensure_consistency” in a lot of model files. There is a job file discourse/ensure_db_consistency.rb at master · discourse/discourse · GitHub
Personally, as much as I like Discourse, I would not expect them to deal with the consequences of actions that go outside of core safeguards. i.e. I often break my own code, but I take full responsibility when it happens. But that’s me. And there certainly can be some core code somewhere I’m not yet aware of.