Что ж, думаю, это сделает то, что вы просили. Это удалит любые личные сообщения, которые не были созданы системным пользователем или discobot. При этом будут удалены и любые другие личные сообщения, включая сообщения от администраторов.
Это не протестировано. Я не утверждаю, что это хорошая идея. Я не обещаю, что это не приведёт к чему-то плохому.
cd /var/discourse
discourse backup
./launcher enter app
rails s
Topic.where(archetype: 'private_message').where("user_id > 0").destroy_all
exit
discourse enable_restore
discourse restore
Если ничего плохого не произойдёт, вы можете пропустить последние два шага. Если что-то пойдёт не так, вам нужно будет скопировать и вставить последнюю резервную копию, выведенную командой discourse restore, чтобы восстановить данные из резервной копии.