3

Ploneサイトを3.3.5からPlone4.1.2にアップグレードしようとしています。4.1.2のクリーンコピーをインストールし、Data.fsを4.1.2にコピーしようとしました。もうサポートされていないLargePloneFolderタイプであったため、membersフォルダーを削除する必要がありました。32ビット仮想マシンでは、これは問題なく機能しました。ただし、64ビット仮想マシンでエラーが発生しました。32ビットマシンでPlone3.3.5(同じマシン)からData.fsをコピーするか、Plone 4.1.2からData.fsをコピーすると、同じエラーが発生しました。

スタックトレース:

Iz@bigBox# 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はPlone4.1.2ユニファイドインストーラーに同梱されています

私もdbをパックしようとしました。Plone 3.3.5でfsrecover.pyを使用し、グラフィックインターフェイスも使用します。しかし、それも役に立ちません。32ビットのインストールでエラーがまったく発生せず、Data.fsの移行が正常に機能したため、これは奇妙なことです。

cpコマンドを使用してdbをコピーし、32ビットVMで正常に機能する-pオプションを使用してすべてのアクセス許可を保持します。

4

1 に答える 1

4

移行を試みる前に、データベースをパックするか、実行中のPlone3.3.xインストール内のZope2/Control_Panelにある古い「ZODBバージョン」を削除してみてください。または、4.xの移行を試みる前に、Ploneサイト全体のZEXPエクスポートを実行し、それをクリーンな3.3.5インストールにインポートしてみてください。「バージョン」(長時間実行されるトランザクション)は、ZODBの新しいバージョンではサポートされておらず、少なくとも数年は非推奨になっています。

このスレッドを参照してください: https ://mail.zope.org/pipermail/zodb-dev/2010-September/013620.html

于 2011-12-05T21:50:22.080 に答える