2011-12-05 5 views
3

Plone 사이트를 3.3.5에서 Plone 4.1.2로 업그레이드하려고합니다. 나는 4.1.2의 깨끗한 복사본을 설치하고 Data.fs를 4.1.2로 복사하려고 시도했다. 더 이상 지원되지 않는 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. 

파이썬 버전 : 플론 (Plone)와 함께 제공되는 2.6 내가뿐만 아니라 DB를 포장하려

통합 설치를 4.1.2. Plone 3.3.5에서 fsrecover.py를 사용하고 그래픽 인터페이스도 사용합니다. 하지만 그건 도움이되지 않습니다. 필자의 32 비트 설치에서 오류가 전혀 발생하지 않고 Data.fs의 마이그레이션이 정상적으로 작동했기 때문에 이상합니다.

32 비트 VM에서 정상적으로 작동하는 -p 옵션을 사용하여 모든 권한을 보존 한 cp 명령으로 db를 복사합니다.

+1

당신은 더 적절한 답변을 얻을 수 있습니다 :

이 스레드를 참조 파이썬 내장하는 방법에의 (a) 전체 역 추적, (b)는 파이썬 버전 정보 (시스템 패키지), (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에 복사했습니다. 백만 달러 고맙습니다. –