PicklingError caused by p4a.calendar.interfaces.ICalendarSupport when migrating from 3.3.5 to 4.0.7
I am trying to migrate a Plone 3.3.5 installation to 4.0.7.
Before migrating, it was decided that Plone4Artists Calendar should be removed.
We followed the procedures proposed here http://plone.org/documentation/kb/cleaning-p4a, applying it for the following interfaces:
from p4a.calendar.interfaces import ICalendarEnhanced
from p4a.calendar.interfaces import IPossibleCalendar
from p4a.calendar.interfaces import ICalendarConfig
from p4a.calendar.interfaces import IEventProvider
from p4a.calendar.interfaces import IEvent
from p4a.calendar.interfaces import IBasicCalendarSupport
from p4a.calendar.interfaces import ICalendarSupport
Apparently, it works (except for the IPossibleCalendar interface, for which I get a "Can only remove directly provided interfaces." message). In order to remove that, we uninstalled the product (following good advice from here)
Now, after moving the Data.fs from 3.3.5 to the 4.0.7 install, and trying to activate the migration at /Plone/@@plone-upgrade, I get the following traceback:
Traceback (most recent call last):
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\plone-4.0.7-py2.6.egg\Products\CMFPlone\MigrationTool.py", line 175, in upgrade
step['step'].doStep(setup)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\products.genericsetup-1.6.3-py2.6.egg\Products\GenericSetup\upgrade.py", line 142, in doStep
self.handler(tool)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\plone.app.upgrade-1.0.7-py2.6.egg\plone\app\upgrade\v40\alphas.py", line 443, in migrateFolders
transaction.savepoint(optimistic=True)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\transaction-1.0.1-py2.6.egg\transaction\_manager.py", line 99, in savepoint
return self.get().savepoint(optimistic)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\transaction-1.0.1-py2.6.egg\transaction\_transaction.py", line 253, in savepoint
self._saveAndRaiseCommitishError() # reraises!
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\transaction-1.0.1-py2.6.egg\transaction\_transaction.py", line 250, in savepoint
savepoint = Savepoint(self, optimistic, *self._resources)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\transaction-1.0.1-py2.6.egg\transaction\_transaction.py", line 647, in __init__
savepoint = savepoint()
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\zodb3-3.9.5-py2.6-win32.egg\ZODB\Connection.py", line 1128, in savepoint
self._commit(None)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\zodb3-3.9.5-py2.6-win32.egg\ZODB\Connection.py", line 606, in _commit
self._store_objects(ObjectWriter(obj), transaction)
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\zodb3-3.9.5-py2.6-win32.egg\ZODB\Connection.py", line 640, in _store_objects
p = writer.serialize(obj) # This calls __getstate__ of obj
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\zodb3-3.9.5-py2.6-win32.egg\ZODB\serialize.py", line 422, in serialize
return self._dump(meta, obj.__getstate__())
File "d:\plone-4.0.7-teste-20110927\buildout-cache\eggs\zodb3-3.9.5-py2.6-win32.egg\ZODB\serialize.py", line 431, in _dump
self._p.dump(state)
PicklingError: Can't pickle <class 'p4a.calendar.interfaces.ICalendarSupport'>: import of module p4a.calendar.interfaces failed
Please note that this is a test run: it is a bogus and clean Data.fs, and the only product involved is P4A.Calendar, which was installed (and uninstalled before moving the Data.fs to the 4.0.7 install) only at the 3.3.5 buildout.
I also tried to follow the advice from here, and the SiteManager for the Plone object does not have any adapter or subscriber with the "p4a"开发者_开发技巧 string. The dict attribute from the global SiteManager does not report any occurrence of the "p4a" string either.
Can anyone give me a light on this? Where should I look for "p4a.calendar.interfaces.ICalendarSupport" in the Data.fs?
精彩评论