最近的 Doc Categories 更新后侧边栏激活问题

在对 文档类别 进行这些更改后

侧边栏不再激活。我正在运行 3.6.0.beta1-dev (17d735b3ad) 版本和 Horizon 主题,错误日志中没有任何内容。我还确保设置了索引主题,重建了启动器,并运行了 bundle exec rake doc_categories:build_sidebar

2 个赞

感谢您的报告,我们将尽快查看。

2 个赞

糟糕,那可不太好。

你还有 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) 应该发生并重置缓存。如果问题是这样,你应该现在就看到了。

3 个赞

感谢您的快速回复!看来问题不在于缓存,因为问题仍然存在。我将通过私信向您发送 Data Explorer 查询结果和 bundle exec rake doc_categories:build_sidebar 的输出。它会因致命错误而中止。

2 个赞

为了方便以后查看,在此汇报一下 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 已确认这些部分和链接已成功创建。:ok_hand:t2:

4 个赞

此主题已在 3 天后自动关闭。不再允许回复。