跳转到主要内容

检查ZODB中的所有数据是否可以加载

项目描述

概述

通过迭代和加载所有记录来验证ZODB。问题将详细报告。提供了一个调试器,以及反汇编信息。

zodbverify可以作为独立脚本以及作为plone.recipe.zope2instance的插件使用。

用法

脚本

验证在普通的ZODB文件上运行。Zope应用程序未启动。

运行示例:

bin/zodbverify -f var/filestorage/Data.fs

用法

zodbverify [-h] -f ZODBFILE [-D] [-o OID]

Verifies that all records in the database can be loaded.

optional arguments:
  -h, --help            show this help message and exit
  -f ZODBFILE, --zodbfile ZODBFILE
                        Path to file-storage
  -D, --debug           pause to debug broken pickles
  -o OID, --oid OID     oid to inspect

plone.recipe.zope2instance集成

验证在初始化的Zope应用程序上下文中运行。

用法

./bin/instance zodbverify [-h] [-D] [-o OID]

Verifies that all records in the database can be loaded.

optional arguments:
  -h, --help         show this help message and exit
  -D, --debug        pause to debug broken pickles
  -o OID, --oid OID  oid to inspect

检查单个oid

zodbverify的输出会给你一个所有问题和受影响的oid列表。

要详细检查单个oid,你可以将其传递给zodbverify。

./bin/instance zodbverify -o 0x2e929f

这将输出该oid的pickle和错误信息。

通过添加debug开关,你将在脚本运行时得到两个pdb。

./bin/instance zodbverify -o 0x2e929f -D

2020-03-11 10:40:24,972 INFO    [Zope:45][MainThread] Ready to handle requests
The object is 'obj'
The Zope instance is 'app'
[4] > /Users/pbauer/workspace/dipf-intranet/src-mrd/zodbverify/src/zodbverify/verify_oid.py(52)verify_oid()
-> pickle, state = storage.load(oid)

在第一个pdb中,oid的对象是obj,zope实例是app。在第二个pdb之前,pickle将按照使用zodbverify暂停以调试损坏的pickle的方式被解包,而不传递oid。

源代码

贡献者请阅读文档Plone核心开发流程

源代码在Github上托管的Plone代码仓库

变更日志

1.2.0 (2022-07-06)

新功能

1.1.0 (2020-04-22)

新功能

  • 显示每个错误的受影响oid。检查单个oid。这个想法是在整个数据库上运行zodbverify,然后从输出中复制一个oid再次运行,以进一步检查该对象。[pbauer] (#6)

错误修复

  • 小型的打包更新。 (#1)

1.0.2 (2019-08-08)

错误修复

  • 以只读模式打开Data.fs。 (#2)

1.0.1 (2019-05-09)

错误修复

  • 修复项目描述。[jensens] (#1)

1.0 (2019-05-09)

新功能

  • 初始努力。基本代码取自Products.CMFPlone(由@davisagli创建)。增强并打包以供更广泛的Zope使用。[dwt,jensens] (#1)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

zodbverify-1.2.0.tar.gz (15.2 kB 查看散列)

上传时间

构建分发

zodbverify-1.2.0-py2.py3-none-any.whl (15.3 kB 查看散列)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面