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

**URL:** https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888
**Category:** Bug
**Tags:** doc-categories, horizon-theme, bug
**Created:** [2025年九月24日 14:03 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888 "2025-09-24T14:03:18Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![MachineScholar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/machinescholar/32/424719_2.png) [@MachineScholar](https://meta.discourse.org/u/MachineScholar)
#### Post date: [2025年九月24日 14:03 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/1 "2025-09-24T14:03:18Z")

</div>

在对 [文档类别](https://meta.discourse.org/t/discourse-doc-categories/322376) 进行这些更改后

> **[Comparing...](https://github.com/discourse/discourse-doc-categories/compare/5f17b5920e3ccd8f604e5bad17186758710ee463...0e49fd13b29e2b90007445041933a970ae47ad02)**
>
> Contribute to discourse/discourse-doc-categories development by creating an account on GitHub.

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

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [2025年九月24日 14:19 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/2 "2025-09-24T14:19:25Z")

</div>

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

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [2025年九月24日 17:36 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/4 "2025-09-24T17:36:28Z")

</div>

糟糕，那可不太好。

你还有 `bundle exec rake doc_categories:build_sidebar` 的输出吗？（如果内容是私密的，可以随时给我发私信）

到目前为止，我在 Meta + Horizon 上没有看到问题，但可能存在我遗漏的状态。如果你有数据浏览器，可以检查是否创建了索引、分区和链接吗？

> **查询**
>
> ```plaintext
> 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 任务运行之前被缓存了。

```plaintext
1. 迁移到表
2. 缓存未命中 -> 看到正常侧边栏而不是文档侧边栏
3. rake 任务构建侧边栏
4. 应该看到重建的侧边栏

```

理论上，(4) 应该发生并重置缓存。如果问题是这样，你应该现在就看到了。

---

<div class="post-metadata">

### Author: ![MachineScholar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/machinescholar/32/424719_2.png) [@MachineScholar](https://meta.discourse.org/u/MachineScholar)
#### Post date: [2025年九月25日 11:20 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/5 "2025-09-25T11:20:40Z")

</div>

感谢您的快速回复！看来问题不在于缓存，因为问题仍然存在。我将通过私信向您发送 [Data Explorer](https://meta.discourse.org/t/32566?silent=true) 查询结果和 `bundle exec rake doc_categories:build_sidebar` 的输出。它会因致命错误而中止。

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [2025年九月25日 11:55 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/7 "2025-09-25T11:55:47Z")

</div>

为了方便以后查看，在此汇报一下 OP 中运行的 rake 任务是：

```plaintext
bundle exec rake doc_categories:build_sidebar

```

并遇到了以下错误：

```plaintext
ActiveRecord::NoDatabaseError: 我们找不到您的数据库：discourse。可用的数据库配置可以在 config/database.yml 中找到。(ActiveRecord::NoDatabaseError)

```

根据自托管设置的不同，该任务可能需要使用 `discourse` 用户来运行才能访问数据库。

```plaintext
sudo -E -u discourse bundle exec rake doc_categories:build_sidebar

```

@MachineScholar 已确认这些部分和链接已成功创建。👌🏻

---

<div class="post-metadata">

### Author: ![nat](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nat/32/235063_2.png) [@nat](https://meta.discourse.org/u/nat)
#### Post date: [2025年九月29日 00:00 UTC](https://meta.discourse.org/t/sidebar-activation-issues-after-recent-doc-categories-update/383888/8 "2025-09-29T00:00:47Z")

</div>

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