恢复已删除的消息?

大家好,

我是使用 Discourse 引擎的站点审计员。其中一名成员删除了约 1300 条消息。系统会自动将对此消息的回复移至话题末尾。我们是否有批量恢复功能?

如果您是自行托管,可以通过 Rails 控制台执行此操作。如果您使用的是托管服务,可以联系支持团队。

管理批量操作 中可能有一些提示。

类似如下代码:

t=Topic.all.with_deleted.where("deleted_at is not null").where(user_id: 123)
t.update_all(deleted_at: nil, deleted_by_id: nil)

但我想您之后还需要运行其他命令来更新其他表。

你能具体描述一下他们是怎么做到的吗?在默认的 Discourse 安装中,普通用户的删除操作会受到速率限制,且删除操作需要 24 小时才会生效。

我想他每天删除了五篇帖子。

明白了。这些是软删除,因此您可以通过用户界面或 SSH 登录服务器后在命令行中撤销它们。

您可以在管理站点设置中调低每日允许的删除数量,以防止此类情况再次发生;目前已有讨论关于在该设置中允许设为零,从而完全禁止所有删除操作。

@sam,我们能否确保在下周支持零值设置?同时更新该设置周围的文案,让用户知道该功能的存在。

已完成,通过:

max_post_deletions_per_minutemax_post_deletions_per_day 设置为 0 将禁用帖子的自助删除功能。