2015-04-22 2 views
2

Сайт с Plone 4.2.5 был повышен до Plone 4.3.4.PicklingError после обновления до Plone 4.3

При выполнении проверки отказа от объекта, показано следующее сообщение об ошибке:

2015-04-22T01:18:16 ERROR Zope.SiteErrorLog 1429676296.560.86437176197 http://localhost:8181/Plone/capa/@@content-checkout 
Traceback (innermost last): 
    Module ZPublisher.Publish, line 146, in publish 
    Module Zope2.App.startup, line 301, in commit 
    Module transaction._manager, line 89, in commit 
    Module transaction._transaction, line 329, in commit 
    Module transaction._transaction, line 443, in _commitResources 
    Module ZODB.Connection, line 559, in commit 
    Module ZODB.Connection, line 1123, in savepoint 
    Module ZODB.Connection, line 623, in _commit 
    Module ZODB.Connection, line 658, in _store_objects 
    Module ZODB.serialize, line 422, in serialize 
    Module ZODB.serialize, line 431, in _dump 
PicklingError: Can't pickle <class 'plone.app.kss.interfaces.IPortalObject'>: import of module plone.app.kss.interfaces failed 

по каталогу Объекты не обеспечивают plone.app.kss.interfaces.IPortalObject.

Любая идея?

+1

Я думаю, что вам нужно в ближайшее время перечислить kss прямо в вашей сборке. Я посмотрю имя пакета на работе, возможно, 'plone.app.kss';) –

+0

У меня есть явный' egg + = kss.core' в моем экземпляре пробной миграции, и я не могу думать, что я бы поставил это там без причины. Может быть, это поможет? –

+0

Спасибо, Ульрих; это на самом деле обходной путь, но я бы хотел очистить ZODB, чтобы избежать этого. – hvelarde

ответ

2

Вы всегда должны прочитать Plone обновить руководство перед выполнением миграции:

https://plone.org/documentation/manual/upgrade-guide/version/upgrading-plone-4.2-to-4.3/referencemanual-all-pages

plone.app.kss больше не поставляется с Plone 4.3.x. Вы должны повторно добавить его в buildout.cfg:

eggs = 
    ... 
    plone.app.kss 

Хотя, я хотел бы предложить вам очистить ваш ZODB после обновления. В противном случае вы столкнетесь с проблемами, поскольку plone.app.kss не поддерживается.

+0

Я знаю, что KSS больше не поставляется с Plone 4.3, и я знаю, что Plone 4.3 имеет шаги по обновлению, чтобы удалить его из ZODB; я не понимаю, почему у меня такая неожиданная ошибка. Это ошибка? Как очистить ZODB после обновления? Этот интерфейс занесен в черный список на [CatalogTool.py] (https://github.com/plone/Products.CMFPlone/blob/4.3.4.1/Products/CMFPlone/CatalogTool.py#L73). – hvelarde

+0

Вы пытались посмотреть, как это делают шаги обновления Plone 4.3? Возможно, plone.app.iterate был забыт на этапе обновления. Я бы сказал, что это скорее всего ошибка. – tisto

+1

Догадка, но есть известная проблема между 4.2.x и 4.3.x, где каталог zc.relation вызывает проблемы из-за хранения имен интерфейсов, и я не уверен, что еще есть этап обновления. Например. http://stackoverflow.com/questions/20290361/how-to-clean-up-old-interfaces-on-zc-relation-catalog –