2011-12-05 15 views
3

Ploneサイトを3.3.5からPlone 4.1.2にアップグレードしようとしています。私は4.1.2のクリーンなコピーをインストールし、4.1.2にData.fsをコピーしようとしました。私はそれが既にサポートされていないタイプのLargePloneFolderだったので、私のメンバーフォルダを削除しなければなりませんでした。 32ビット仮想マシンでは、これは正常に機能しました。しかし、私は64ビット仮想マシンでエラーに遭遇しました。 Plone 3.3.5(同じマシン)または32ビットマシンの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の移行はうまくいきました。

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

+1

あなたが含まれるように質問を編集する場合は、より適切な答えを得ることができます:(a)のフルトレースバック、(b)はPythonのバージョン、あなたのPythonを構築する方法についての情報(システムパッケージ)、(c)Ploneのインストール方法(統一されたインストーラ?)、(d)ZODBのコピー方法注:AFAICT、ZODB自体は63/32ビットの問題を持つデータ構造を持つべきではありませんが、Pythonの組み込みハッシュアルゴリズムは64/32ビットプラットフォームで一貫していません - これはアドオンやその他の不明な点で問題を引き起こす可能性があります問題。詳細情報が必要です。 – sdupton

+0

それを指摘してくれてありがとう。私は今投稿を更新しました。 –

答えて

4

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

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

+1

OK、サイトをエクスポートしてからクリーン3.3.5にインポートし、Data.fsをPlone 4.1.2のvar/filestorageにコピーしました。百万をありがとう。 –

関連する問題