在对 文档类别 进行这些更改后
侧边栏不再激活。我正在运行 3.6.0.beta1-dev (17d735b3ad) 版本和 Horizon 主题,错误日志中没有任何内容。我还确保设置了索引主题,重建了启动器,并运行了 bundle exec rake doc_categories:build_sidebar。
在对 文档类别 进行这些更改后
侧边栏不再激活。我正在运行 3.6.0.beta1-dev (17d735b3ad) 版本和 Horizon 主题,错误日志中没有任何内容。我还确保设置了索引主题,重建了启动器,并运行了 bundle exec rake doc_categories:build_sidebar。
感谢您的报告,我们将尽快查看。
糟糕,那可不太好。
你还有 bundle exec rake doc_categories:build_sidebar 的输出吗?(如果内容是私密的,可以随时给我发私信)
到目前为止,我在 Meta + Horizon 上没有看到问题,但可能存在我遗漏的状态。如果你有数据浏览器,可以检查是否创建了索引、分区和链接吗?
SELECT
i.category_id,
i.index_topic_id,
sec.section_names,
lnk.section_links
FROM doc_categories_indexes i
LEFT JOIN LATERAL (
SELECT
string_agg(COALESCE(s.title, ''), ', ' ORDER BY s.position) AS section_names
FROM doc_categories_sidebar_sections s
WHERE s.index_id = i.id
) AS sec ON TRUE
LEFT JOIN LATERAL (
SELECT
string_agg(l.href, ', ' ORDER BY s.position, l.position) AS section_links
FROM doc_categories_sidebar_sections s
LEFT JOIN doc_categories_sidebar_links l
ON l.sidebar_section_id = s.id
WHERE s.index_id = i.id
) AS lnk ON TRUE
ORDER BY i.category_id, i.index_topic_id;
其中一个因素是站点缓存。由于分类缓存 30 分钟,更新可能已经发生,并且常规侧边栏在 rake 任务运行之前被缓存了。
1. 迁移到表
2. 缓存未命中 -> 看到正常侧边栏而不是文档侧边栏
3. rake 任务构建侧边栏
4. 应该看到重建的侧边栏
理论上,(4) 应该发生并重置缓存。如果问题是这样,你应该现在就看到了。
感谢您的快速回复!看来问题不在于缓存,因为问题仍然存在。我将通过私信向您发送 Data Explorer 查询结果和 bundle exec rake doc_categories:build_sidebar 的输出。它会因致命错误而中止。
为了方便以后查看,在此汇报一下 OP 中运行的 rake 任务是:
bundle exec rake doc_categories:build_sidebar
并遇到了以下错误:
ActiveRecord::NoDatabaseError: 我们找不到您的数据库:discourse。可用的数据库配置可以在 config/database.yml 中找到。(ActiveRecord::NoDatabaseError)
根据自托管设置的不同,该任务可能需要使用 discourse 用户来运行才能访问数据库。
sudo -E -u discourse bundle exec rake doc_categories:build_sidebar
@MachineScholar 已确认这些部分和链接已成功创建。![]()
此主题已在 3 天后自动关闭。不再允许回复。