ZODB浏览器
项目描述
ZODB浏览器允许您检查存储在ZODB中的持久对象,查看它们的属性以及对其进行的更改历史。
作为独立项目使用
使用zc.buildout将所有依赖项安装到源树中
python bootstrap.py bin/buildout
运行bin/zodbbrowser,指定文件名或ZEO地址
bin/zodbbrowser /path/to/Data.fs bin/zodbbrowser --zeo localhost:9080 bin/zodbbrowser --zeo /path/to/zeosock
如果您没有备用的Data.fs用于测试,您可以使用仅包含最基本的Zope 3脚手架的新空文件创建一个。
bin/zodbbrowser empty.fs --rw
在网页浏览器中打开http://localhost:8070。请注意,没有访问控制;本地机器上的所有其他用户都将能够访问数据库内容。
或者您可以尝试使用easy_install或pip。它可能工作,也可能不工作,具体取决于所有依赖项的当前状态(buildout.cfg将依赖项版本硬编码到一个已知可一起工作的状态,称为“Zope 3.4已知良好集”,因此基于buildout的安装更安全)。
easy_install zodbbrowser zodbbrowser /path/to/Data.fs
命令行选项
运行bin/zodbbrowser --help以查看完整且最新的命令行选项列表。
Usage: zodbbrowser [options] [FILENAME | --zeo ADDRESS] Open a ZODB database and start a web-based browser app. Options: -h, --help show this help message and exit --zeo=ADDRESS connect to ZEO server instead --listen=ADDRESS specify port (or host:port) to listen on --rw open the database read-write (allows creation of the standard Zope local utilities if missing)
帮助!到处都是损坏的对象
如果您不想在各个地方看到<持久损坏的...>,请确保您的应用程序对象可以从Python路径中导入。最简单的方法是将zodbbrowser添加到您的应用程序的buildout中(或如果您使用virtualenv,则添加到virtualenv)。这样,您的应用程序(或Zope的)漂亮的__repr__也会被使用。
在线帮助
在每页的右下角都有一个“帮助”链接,它详细描述了用户界面。
作为插件使用
将zodbbrowser添加到egg列表中(例如,在您的应用程序的buildout.cfg中),并将其添加到您的site.zcml中。
<include package="zodbbrowser" />
重新运行bin/buildout,重新启动Zope,并在URL末尾追加@@zodbbrowser以开始浏览,例如:http://localhost:8080/@@zodbbrowser。或者,如果您仍然使用ZMI(Zope管理界面),请查找名为“ZODB浏览器”的新菜单项。
替代方案
在Zope svn存储库中有一个名为z3c.zodbbrowser的包,它实现了一个相同的想法(但没有历史浏览),作为一个使用wxPython编写的GUI桌面应用程序。它没有网站,并且从未发布到Python包索引。
还有一个名为dm.historical的包,它从交互式Python外壳提供对对象历史的访问。
如果您对历史或无法通过URL遍历访问的对象不感兴趣,您可以使用Zope 3 / Grok附带的本机对象检查器。
变更
0.17.1 (2020-11-25)
修复历史状态计算中的解释器崩溃(BTree_rangeSearch: 断言‘highbucket != NULL’失败)大型OOBTrees(GH #33)。
0.17 (2020-11-24)
修复使用ZEO时出现的@@zodbbrowser_history问题(属性错误:‘TransactionIterator’对象没有属性‘close’,GH #31)。
修复0.11.0中退化的OOBTree历史浏览:它只显示更改的子集(触及OOBTree本身的更改),而不显示其他更改(触及更深的OOBTreeBuckets)。
修复SampleContainer子类使用非持久__data属性时的TypeError(GH: #18)。
如果@@zodbbrowser_history渲染时间过长(超过10秒),则放弃渲染所有详细信息;您可以通过将fast添加到查询参数中强制快速模式,并通过将full添加到查询参数中强制完整模式。
通过将nohist添加到查询参数中,可以关闭(慢速)@@zodbbrowser的历史部分。
0.16.2 (2020-11-24)
对于使用ZEO时的@@zodbbrowser_history的不完整修复,自0.12以来已损坏(属性错误:‘TransactionIterator’对象没有属性‘close’,GH #31)。
添加对Python 3.8和3.9的支持。
删除对Python 3.5的支持。
0.16.1 (2019-07-30)
修复了系统错误,当对象引用在较新事务中添加的对象时出现错误(GH #29)。
0.16.0 (2019-07-24)
现在可以查看反汇编的原始pickle数据。
0.15.2 (2019-07-11)
停止依赖于2012年的过时ZODB3元包。改为直接依赖持久化、BTrees、ZODB和ZEO。
0.15.1 (2019-04-23)
放弃了Python 3.4的支持。
0.15.0 (2019-04-02)
添加了对Python 3.7的支持。
添加了对PyPy和PyPy3的支持。
在PURE_PYTHON模式下支持zope.security代理。
使用自定义的__repr__而不是新的持久化版本。
生成的URL中的事务ID现在以十六进制形式显示。
100%测试覆盖率。
0.14.0 (2017-11-15)
添加了对Python 3.4、3.5和3.6的支持。
取消对ZODB 3.8的支持。
0.13.1 (2017-10-06)
使用ZODB的最新版本修复了@@zodbbrowser_history的错误(AttributeError: MVCCAdapterInstance没有属性iterator)。
0.13.0 (2016-11-24)
取消了Python 2.6的支持(因为ZODB—更具体地说BTrees—取消了它)。
修复了回滚以与transaction >= 2.0一起工作的问题(现在事务注释必须是Unicode)。
0.12.0 (2015-02-25)
0.11.2 (2015-01-09)
修复了在遇到旧式类的实例时出现的AttributeError: __repr__(GH #6)。
0.11.1 (2014-12-12)
0.11.0 (2013-05-29)
取消了Python 2.4和2.5的支持。
将源代码从Launchpad迁移到Github。
自定义OOBucket对象的表示。
当指定无效/不存在的OID时,错误页面有所改进。
处理具有非持久_order或_data属性的有序容器(我在野外看到了第一个)。
对LP#1185175的部分修复:无法浏览使用zope.interface.implementsOnly的类的对象。
0.10.4 (2012-12-19)
上一个版本完全损坏(LP#1091716)。修复了问题,并修复了tox.ini以实际运行功能测试,而不仅仅是单元测试。
0.10.3 (2012-12-06)
自定义无__repr__的持久对象的表示,以避免显示误导性的内存地址(LP#1087138)。
0.10.2 (2012-11-28)
修复了在查看非平凡大小的BTrees时出现的POSKeyErrors错误(LP#953480)。这修复了版本0.10.0中引入的回归。
0.10.1 (2012-11-27)
独立应用程序模式使用Zope异常格式化程序,以便更容易调试。
修复了某些具有自定义遍历规则的容器中出现的奇怪LocationError: ‘__class__’错误。
值表示中的持久对象链接现在也使用十六进制OID。
0.10.0 (2012-02-29)
0.9.0 (2011-10-21)
使zodbbrowser可以作为Zope 2.12的插件使用。以前,您只能使用独立zodbbrowser应用程序与Zope 2.12数据库一起使用。
在repr()中遇到异常时,更健壮:将值显示为“<unrepresentable Foo>”而不是出错。
使‘python -m zodbbrowser’在Python 2.5和2.7上运行独立应用程序。请注意,‘python -m zodbbrowser.standalone’已经可以在Python 2.4到2.7上工作。
添加指定 ZEO 存储名称的选项(–storage NAME)。由 Thierry Florac 贡献。
0.8.1 (2010-12-18)
在历史记录中更清晰地显示元组差异。(使用一个非常简单的 diff 算法,只查找公共前缀/后缀。当你追加到末尾或删除单个项目时,效果非常好。我不能使用 difflib.SequenceMapper,因为没有保证元组项是可哈希的。)
可以通过 OID 定位对象:按 g 键,然后输入 oid(支持十六进制和十进制;如果你愿意,甚至支持八进制)。你也可以通过输入类似于 '0x1234/sub/object' 的路径来从给定的 OID 开始查找子对象。
捕获并显示当前状态的未序列化错误,而不仅仅是历史较老的状态。
处理由持久对象直接提供的缺失接口。
这对于独立的 zodbbrowser 应用程序有效;当使用 zodbbrowser 作为插件时,这个 zope.interface 的 monkey-patch 过于侵入性,不适合安装。
通过添加 easy_install 会从 setuptools extras 中捕获的显式依赖项,使 pip install zodbbrowser 正确工作。
注意:如果您收到 AttributeError: __file__,请确保 zope.app.applicationcontrol 至少是版本 3.5.9。较旧版本将无法与 pip 一起工作。
0.8.0 (2010-11-16)
0.7.2 (2010-08-13)
修复了 TypeError:int() 无法将非字符串转换为具有显式基数的错误,这可能会在无法从请求访问持久对象且未传递显式 oid 的情况下发生。
更好地处理代理:当 type(obj) != obj.__class__ 时,显示两者。
处理具有特殊持久策略的 ContainedProxy 对象。
0.7.1 (2010-03-30)
重要错误修复:不要在 ZODB 对象缓存中留下旧对象状态,这可能导致数据丢失(LP#487243 再次出现,这次是针对 OrderedContainers)。
我已经审查了代码,相当确信这个错误现在已经完全修复。
尝试在以只读方式打开数据库时丢弃数据修改。
避免使用已弃用的 zope.testing.doctest。
避免使用 zope.app.securitypolicy;使用 zope.securitypolicy。
0.7 (2009-12-10)
停止使用 setuptools extras;现在 easy_install zodbbrowser 就足以运行独立应用程序。
0.6.1 (2009-12-09)
与最新的 Zope 软件包兼容,包括 ZODB 3.9.x。
0.6 (2009-12-07)
能够将对象状态回滚到旧版本。需要读写数据库连接(即运行 bin/zodbbrowser –rw)。按钮默认隐藏,当您将鼠标悬停在事务列表中的条目上时,按钮会显示。
默认折叠长项目列表。
0.5.1 (2009-11-23)
重要错误修复:不要在 ZODB 对象缓存中留下旧对象状态,这可能导致数据丢失(LP#487243)。这影响了 OOBTree 对象。
0.5 (2009-11-23)
对未序列化错误更加宽容(显示无法加载的修订版本,而不是使整个页面中断)。
显示 OOBTree 对象及其子对象的全历史记录(LP#474334)。
当鼠标悬停在链接上时,更改链接的背景颜色,以便清楚地了解您单击时将看到什么对象,尤其是当 __repr__ 显示包含子对象的 repr 时。
在“项目”标题旁边显示容器的尺寸(LP#486910)。
在容器的表示旁边显示容器的尺寸,例如:“<persistent.dict.PersistentDict 对象在 0xad0b3ec>(0 项)”。
注意当 __name__ 被声明为类属性时(LP#484899)。
显示对象上直接提供的接口名称(即显示 pickled zope.interface.Provides 对象的更好表示)。
字典的漂亮打印(包括嵌套字典)。
0.4 (2009-10-11)
@@zodbbrowser oid 和 tid 参数现在接受十六进制格式的值(0x0123)。由 Adam Groszer 修补。
0.3.1 (2009-07-17)
修复了 Windows 上的安装错误(路径不能以 / 结尾)。
0.3 (2009-07-17)
第一次公开发布
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
构建分发
zodbbrowser-0.17.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e055334bc58b3766716d1e9d35ac11cab7b25ed0f5435fd938679df3b4d54a77 |
|
MD5 | 925ac001c4b17dc87b8c9ea9c952b04d |
|
BLAKE2b-256 | cd54c878b0208903d2d5f814c670f4cebecf841633de04121d7b8c7c3989f3a4 |
zodbbrowser-0.17.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 85ae08256b5400601d79e0d64c831189145aa33b74f2ae4d8658161643b9604f |
|
MD5 | eaafbee1d097758542d15866089deb8b |
|
BLAKE2b-256 | 16e6aa9ed9b0067ab14c8d3935b71139567f5663e5e06b620ae8923aaba12d22 |