嗯,我认为这应该能满足你的需求。它将删除所有非系统用户或 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 命令输出的最新备份信息,以恢复备份。