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