Documentation 插件 - 恢复后索引主题不工作

几个月前我安装了 Discourse,并在“文档模式”部分将一些主题添加为索引主题。一切都按预期工作。
备份了所有内容,删除了 Digital Ocean 帐户等。

几天前我再次安装了 Discourse,并从创建的备份文件中恢复了所有内容,一切都正常,除了文档部分。起初我以为问题可能是我取消列出了那些索引主题,但它们在我卸载所有内容之前就已经被取消列出了,而且它们是正常工作的,所以那不可能是问题。尽管如此,我还是尝试将它们列出,但没有成功。侧边栏仍然显示默认的类别和所有其他内容。

然后我决定复制原始主题的内容,并用它创建一个新主题,将其设置为索引主题,那个新主题可以正常工作。它也被关闭和取消列出,就像那个不工作的(主题)一样,所以关闭和取消列出不是问题。

看起来在恢复过程中,由于某种原因破坏了文档模式。

只是确认一下——您看到这个了吗?

感谢您提供的链接。
由于我仍在构建整个结构,我最终只是创建了一个新主题,将旧主题的内容复制粘贴过来,然后删除了旧主题。我只有两个这样的主题。

所以,我的问题是:我每次更新 Discourse 时都需要运行那个 rake task 吗?还是只在恢复(如果我将来再次进行恢复)时才需要运行?

不,那个 rake 任务只是从引用的帖子日期开始的一次性操作。

您不应该需要重新创建主题,只需进入类别设置,取消链接,保存,然后重新链接现有主题至少应该可以工作。

只是好奇——为什么没有将其实现为一次迁移(migration)?

根据我当时的回忆——这不可能是迁移。迁移理想情况下不应触及应用程序代码(因为代码可能会偏离迁移的预期时间而导致错误)。

PR 也指出了原因:

此 PR 还包含一个用于从活动的文档索引主题重建侧边栏部分和链接的 rake 任务(doc_categories.rake)——这不完全推荐在迁移中执行,因为它将涉及使用解析器或 nokogiri(其实例可能会漂移并导致无效的迁移)。

所以,如果我理解得没错,从现在开始,我都不需要做那些事了?每次我更新 Discourse 时,都不需要运行 rake 任务或重新链接过程了?

只是想确认我是否理解正确。

是的。那只是一次性的。

太棒了!感谢您的澄清!:raising_hands:

我发现每次编辑索引主题时都需要这样做,这真是令人头疼。

我是不是漏掉了什么?

嘿,各位 Nat 朋友,我在这里确认这个问题。

我认为确实存在一个问题,但我需要能够可靠地复现它。希望下周某个时候能回来带来好消息。

@nathank 快速问一下,你启用了 discourse-calendar 吗?

@nathank 我认为该问题可能在启用日历插件时发生(在 PR 中已说明)。基本上,由于 Calendar 中的一个副作用(bug),Docs Categories 插件未能重新索引该主题。通过此修复,现在可以可靠地重新索引。

如果此修复对您不起作用,请告诉我们。

回复晚了,抱歉——是的

感谢如此迅速的事前修复;我稍后会更新我的站点并进行测试。