几个月前我安装了 Discourse,并在“文档模式”部分将一些主题添加为索引主题。一切都按预期工作。
备份了所有内容,删除了 Digital Ocean 帐户等。
几天前我再次安装了 Discourse,并从创建的备份文件中恢复了所有内容,一切都正常,除了文档部分。起初我以为问题可能是我取消列出了那些索引主题,但它们在我卸载所有内容之前就已经被取消列出了,而且它们是正常工作的,所以那不可能是问题。尽管如此,我还是尝试将它们列出,但没有成功。侧边栏仍然显示默认的类别和所有其他内容。
然后我决定复制原始主题的内容,并用它创建一个新主题,将其设置为索引主题,那个新主题可以正常工作。它也被关闭和取消列出,就像那个不工作的(主题)一样,所以关闭和取消列出不是问题。
看起来在恢复过程中,由于某种原因破坏了文档模式。
感谢您提供的链接。
由于我仍在构建整个结构,我最终只是创建了一个新主题,将旧主题的内容复制粘贴过来,然后删除了旧主题。我只有两个这样的主题。
所以,我的问题是:我每次更新 Discourse 时都需要运行那个 rake task 吗?还是只在恢复(如果我将来再次进行恢复)时才需要运行?
nat
(Natalie T)
4
不,那个 rake 任务只是从引用的帖子日期开始的一次性操作。
您不应该需要重新创建主题,只需进入类别设置,取消链接,保存,然后重新链接现有主题至少应该可以工作。
RGJ
(Richard - Communiteq)
5
只是好奇——为什么没有将其实现为一次迁移(migration)?
nat
(Natalie T)
6
根据我当时的回忆——这不可能是迁移。迁移理想情况下不应触及应用程序代码(因为代码可能会偏离迁移的预期时间而导致错误)。
该 PR 也指出了原因:
此 PR 还包含一个用于从活动的文档索引主题重建侧边栏部分和链接的 rake 任务(doc_categories.rake)——这不完全推荐在迁移中执行,因为它将涉及使用解析器或 nokogiri(其实例可能会漂移并导致无效的迁移)。
2 个赞
所以,如果我理解得没错,从现在开始,我都不需要做那些事了?每次我更新 Discourse 时,都不需要运行 rake 任务或重新链接过程了?
只是想确认我是否理解正确。