سؤال

I am trying to upgrade a Plone site from 3.3.5 to Plone 4.1.2. I installed a clean copy of 4.1.2 and tried to copy the Data.fs to 4.1.2. I had to delete my members folder as it was of the type LargePloneFolder which is not supported anymore. On a 32 bit virtual machine, this worked just fine. However, I ran into errors on my 64bit virtual machine. Copying the Data.fs from Plone 3.3.5 (same machine) or the Data.fs from Plone 4.1.2 on the 32 bit machine resulted in the same error.

Stack Trace:

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 Version: 2.6 shipped with Plone 4.1.2 Unified Installer

I tried to pack the db as well. using fsrecover.py on Plone 3.3.5 and using the graphics interface as well. But that does not help either. This is strange because I get absolutely no errors on my 32 bit installation and migration of Data.fs worked just fine.

I copy the db with the cp command preserving all the permissions with -p option which works fine on the 32 bit VM.

هل كانت مفيدة؟

المحلول

Pack your database and/or try to remove any old "ZODB Versions" in the Zope2 /Control_Panel inside your running Plone 3.3.x install before attempting a migration. Or try doing a ZEXP export of your entire Plone site and import it into a clean 3.3.5 install before attempting to do a 4.x migration. "Versions" (long-running transactions) are not supported in newer versions of ZODB and have been deprecated for at least a few years now.

See this thread: https://mail.zope.org/pipermail/zodb-dev/2010-September/013620.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top