无法删除系统创建的帖子

我试图移除一些分类以改用标签,但结果却生成了一个无法删除的系统创建主题(截图中显示为“Technical”,注意其回复数为 -1)。如果尝试访问该主题,页面会卡死,我只能关闭标签页重新开始。请问有什么办法可以删除它?是否可以通过 Rails 操作?

尝试以下操作:

cd /var/discourse
./launcher enter app
rails c
Topic.find(id).destroy

将鼠标悬停在主题标题上即可找到 id

谢谢 Daniela,删除主题的操作成功了。但现在当我尝试删除分类时,系统仍然认为存在一个主题,因此不允许我删除该分类。是否有类似的函数可以删除分类?

请完整备份您的站点,然后尝试执行以下命令:

cd /var/discourse
./launcher enter app
rails c
rake destroy:topics["Gear","Discussions"]

其中,Gear 是您的子分类,Discussions 是其父分类。

这应该足以删除该子分类下的所有主题。之后,您应该可以删除该子分类。

不幸的是,结果如下…

NameError: 未定义的局部变量或方法 `topics' for main:Object
from (pry):1:in `__pry__'
[2] pry(main)>

我的失误,请只尝试:

cd /var/discourse
./launcher enter app
rake destroy:topics["Gear","Discussions"]

“discussions/gear 类别中没有可删除的主题”,但我仍无法删除该类别,系统提示“无法删除此类别,因为主题数量为 1。”

您能查看日志以确认是否存在特定错误吗?

不,我在日志中没有看到与此相关的任何内容…

你能尝试更新分类计数器,看看是否有帮助吗?

cd /var/discourse
./launcher enter app
rails c
Category.ensure_consistency!

然后再尝试删除该分类。

不幸的是,该操作返回了 nil

我能够使用以下命令重置主题数量:

Category.find_by(name: 'Gear').update(topic_count: 0)

然后成功删除了该分类,感谢 David!

这个对我来说也返回了 nil。

这个返回了‘true’,但没有改变我主题中回复列的 -1 值。我仍然无法删除该分类。

在花了更多时间研究后,我终于让它运行起来了!谢谢!