我試圖將一個Plone站點從3.3.5升級到Plone 4.1.2。我安裝了一個4.1.2的乾淨副本,並試圖將Data.fs複製到4.1.2。我不得不刪除我的成員文件夾,因爲它是LargePloneFolder類型,不再受支持。在32位虛擬機上,這工作得很好。但是,我在64位虛擬機上遇到了錯誤。在32位機器上從Plone 3.3.5(同一臺機器)複製Data.fs或從Plone 4.1.2複製Data.fs導致相同的錯誤。Plone升級3.3.5到Plone 4.1.2
堆棧跟蹤:
[email protected]# bin/zeoserver fg
/usr/local/Plone/zeocluster/parts/zeoserver/bin/runzeo
Traceback (most recent call last):
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZEO/runzeo.py", line 405, in <module>
main()
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZEO/runzeo.py", line 402, in main
s.main()
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZEO/runzeo.py", line 158, in main
self.open_storages()
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZEO/runzeo.py", line 207, in open_storages
self.storages[opener.name] = opener.open()
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/config.py", line 177, in open
return FileStorage(config.path, **options)
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/FileStorage/FileStorage.py", line 185, in __init__
read_only=read_only,
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/FileStorage/FileStorage.py", line 1554, in read_index
h = fmt._read_data_header(pos)
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py", line 150, in _read_data_header
h = DataHeaderFromString(s)
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py", line 236, in DataHeaderFromString
return DataHeader(*struct.unpack(DATA_HDR, s))
File "/usr/local/Plone/buildout-cache/eggs/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/FileStorage/format.py", line 246, in __init__
"Non-zero version length. Versions aren't supported.")
ValueError: Non-zero version length. Versions aren't supported.
Python版本:2.6附帶的Plone 4.1.2統一安裝程序
我環顧了分貝爲好。在Plone 3.3.5上使用fsrecover.py並使用圖形界面。但這也沒有幫助。這很奇怪,因爲我的32位安裝完全沒有錯誤,Data.fs的遷移工作得很好。
我使用cp命令複製數據庫,並使用-p選項保留所有權限,這在32位虛擬機上工作正常。
如果你編輯的問題,包括你可能會得到一個更合適的答案:(一)全面追蹤,(B)Python版本,盡在你的Python是如何構建的(系統封裝(c)如何安裝Plone(統一安裝程序?),(d)您是如何複製ZODB的。注意:AFAICT,ZODB本身不應該具有63/32位問題的數據結構,但是Python的內置散列算法在64/32位平臺上不一致 - 這可能會導致附加組件或其他未知的問題的問題。需要更多信息。 – sdupton
感謝您指出。我現在更新了這篇文章。 –