2016-01-28 102 views
1

我最近收到一個包含erp5數據庫的ZODB文件(.fs)。我需要檢索存儲的數據,但我不知道數據庫結構。檢索ZODB數據庫結構

我需要的是一些代碼行(如果可能)收集存儲在數據庫中的「表」和「記錄」。

這就是我如何連接到數據庫。

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> 

我感謝所有幫助。

謝謝!

回答

1

ZODB是一種「對象」存儲文件格式。它並沒有真正的「記錄」和「表格」。它確實有一個pickled對象的集合,它的確意味着被知道這些對象的特定應用程序使用。

如果您的主要目標是檢查ZODB的內容,您可以嘗試eye,它爲您提供基於瀏覽器的數據庫內容界面。

查看eye的代碼可能會提供一些關於如何自行提取信息的想法,雖然如果不使用原始應用程序,您將無法獲得任何有用的信息。

還有一個關於此主題的更長時間的討論here

+0

謝謝@larsks!我嘗試過_eye_,這有點像我在找的東西。但正如你所說,我沒有什麼用處。我想我需要深入ERP5代碼。我需要將數據導出爲可讀,人性化的格式。 – Lokoluka