Plone 3.3.5 インストールを 4.0.7 に移行しようとしています。
移行する前に、Plone4Artists Calendar を削除することが決定されました。
ここで提案されている手順に従いましたhttp://plone.org/documentation/kb/cleaning-p4a、次のインターフェースに適用します。
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
どうやら、それは機能します (IPossibleCalendar インターフェイスを除き、「直接提供されたインターフェイスのみを削除できます。」というメッセージが表示されます)。それを取り除くために、製品をアンインストールしました(ここからの適切なアドバイスに従います)
ここで、Data.fs を 3.3.5 から 4.0.7 インストールに移動し、/Plone/@@plone-upgrade で移行をアクティブ化しようとすると、次のトレースバックが表示されます。
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
これはテスト実行であることに注意してください: これは偽のクリーンな Data.fs であり、関連する唯一の製品は P4A.Calendar です。 3.3.5 ビルドアウト。
私もhereのアドバイスに従おうとしましたが、Plone オブジェクトの SiteManager には「p4a」文字列を持つアダプターまたはサブスクライバーがありません。グローバル SiteManager からのdict属性も、「p4a」文字列の出現を報告しません。
誰かがこれについて私に光を当てることができますか? Data.fs のどこで「p4a.calendar.interfaces.ICalendarSupport」を探す必要がありますか?