Markdown 缓存
Tier: 基础版,专业版,旗舰版
Offering: 私有化部署
出于性能原因,极狐GitLab 会在以下字段中缓存 Markdown 文本的 HTML 版本:
- 评论。
- 议题描述。
- 合并请求描述。
这些缓存的版本可能会过时,例如当 external_url 配置选项发生更改时。缓存文本中的链接仍会指向旧的 URL。
使缓存失效
你可以通过 API 或 Rails 控制台使 Markdown 缓存失效。
使用 API
先决条件:
- 你必须具有管理员访问权限。
要使用 API 使现有缓存失效:
-
通过发送 PUT 请求,增加应用程序设置中的 local_markdown_version 设置:
shellcurl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/application/settings?local_markdown_version=<increased_number>"
有关此 API 端点的更多信息,请参见更新应用程序设置。
使用 Rails 控制台
先决条件:
- 你必须具有 Rails 控制台 访问权限。
针对群组
要使群组的缓存失效:
-
启动 Rails 控制台:
shellsudo gitlab-rails console -
查找要更新的群组:
rubygroup = Group.find(<group_id>) -
使群组中所有项目的缓存失效:
ruby1group.all_projects.each_slice(10) do |projects| 2 projects.each do |project| 3 # 使议题失效 4 project.issues.update_all( 5 description_html: nil, 6 title_html: nil 7 ) 8 9 # 使合并请求失效 10 project.merge_requests.update_all( 11 description_html: nil, 12 title_html: nil 13 ) 14 15 # 使备注/评论失效 16 project.notes.update_all(note_html: nil) 17 end 18 19 # 更新 10 个项目后暂停一秒钟 20 sleep 1 21end
针对项目
要使单个项目的缓存失效:
-
启动 Rails 控制台:
shellsudo gitlab-rails console -
查找要更新的项目:
rubyproject = Project.find(<project_id>) -
使议题失效:
rubyproject.issues.update_all( description_html: nil, title_html: nil ) -
使合并请求失效:
rubyproject.merge_requests.update_all( description_html: nil, title_html: nil ) -
使备注和评论失效:
rubyproject.notes.update_all(note_html: nil)