ftw.catalogdoctor
项目描述
简介
该包 ftw.catalogdoctor 提供健康检查功能以查找 portal_catalog 中的不一致性,并可以通过手术移除其中的一些。它可以通过 zopectl.command 运行。
健康检查
列出在 portal_catalog 中检测到的不一致性。通过检查目录的内部数据结构来查找不一致性。它目前使用 paths(rid-path 映射)、uids(path-rid 映射)、UID 索引和目录元数据来确定目录是否健康或是否存在问题。健康检查是只读操作,不会修改目录。
可以按照以下方式运行
$ bin/instance doctor healthcheck
手术
尝试修复健康检查发现的问题。在手术前进行健康检查,然后尝试手术,最后进行手术后的健康检查。手术是写操作,但如果手术后的健康检查没有发现更多健康问题,则只有更改才会提交到数据库。目前可用的手术集仅限于我们在生产中观察到的问题。
可以按照以下方式运行
$ bin/instance doctor surgery
还有一个 –dry-run 参数可以防止提交更改。
$ bin/instance doctor --dry-run surgery
调试
如果您需要调试/分析 ftw.catalogdoctor 尚未修复的问题,请查看 debug 模块。它提供了用于 pprint 或检查目录状态的有用函数。
安装
将包添加到您的 buildout 配置中
[instance] eggs += ... ftw.catalogdoctor
兼容性
Plone 4.3.x Plone 5.1.x
开发
分叉此存储库
克隆您的分叉
Shell: ln -s development.cfg buildout.cfg
Shell: python bootstrap.py
Shell: bin/buildout
运行 bin/test 以测试您的更改。
或者通过运行 bin/instance fg 启动实例。
链接
版权
本软件包版权所有 4teamwork.
ftw.catalogdoctor 使用 GNU 通用公共许可证,版本 2。
变更日志
1.2.0 (2020-10-06)
在从索引中删除之前推迟重新索引,引入术后操作。[deiferni]
1.1.0 (2020-09-30)
在修复 UID 索引时,从获取中删除重复对象。[deiferni]
实现对孤儿 rids 仍可遍历的对象进行重新索引。[deiferni]
在手术保护中检查较短路径而不是直接父路径。[deiferni]
为新症状使用额外的 rid 删除手术。[deiferni]
1.0.0 (2019-07-08)
初始实现。