python - 检索 ZODB 数据库结构

标签 python database zodb

我最近收到了一个包含 erp5 的 ZODB 文件 (.fs)数据库。我需要检索存储的数据,但我不知道数据库结构。

我需要的是一些代码行(如果可能的话)来收集存储在数据库中的“表”和“记录”。

这就是我连接到数据库的方式。

from ZODB import FileStorage, DB

storage = FileStorage.FileStorage('D:\slappart88\srv\zodb\main.fs')

db = DB(storage)
conn = db.open()
root = conn.root()
fsi = storage.iterator()

print db
print conn
print root
print fsi

db.close()

获取此输出:

<ZODB.DB.DB object at 0x00000000028395C0>
<Connection at 02978128>
{'Application': <persistent broken OFS.Application.Application instance     '\x00\x00\x00\x00\x00\x00\x00\x01'>}
<ZODB.FileStorage.FileStorage.FileIterator object at 0x0000000002978198>

我将不胜感激。

谢谢!

最佳答案

ZODB 是一种“对象”存储文件格式。它并没有真正的“记录”和“表格”;它确实有一个 pickled 的集合对象,它实际上是由了解这些对象的特定应用程序使用的。

如果您的主要目标只是检查 ZODB 的内容,您可以尝试 eye ,它为您提供了一个基于浏览器的数据库内容界面。

查看 eye 的代码可能会提供一些关于如何自己提取信息的想法,尽管如果不使用原始应用程序您将无法获得任何有用的信息。

p>

关于这个主题有更长的讨论 here .

关于python - 检索 ZODB 数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066428/

相关文章:

python - PyQt:没有这样的插槽

python - PyQt5 项目结构和 PyInstaller ModuleNotFoundError

mysql - 如何使mysql数据库模式与h2数据库兼容

java - 在 JAX-RS 中初始化实体管理器以实现规模化

blob - Collective.xsendfile、ZODB blob 和 UNIX 文件权限

Python - Pandas - 将特定函数应用于给定级别 - 多索引数据帧

python - 如何在 python 中查询 AWS DynamoDB?

java - Apache Derby - 检查数据库是否已创建?

python - 大型门户网站上的 web2py 或 grok(zope),

python - 备份 ZODB blob 的正确方法是什么?