如何解决我该如何解决:成员CMFPlone产品中的此对象已损坏!?
| 我有一个Plone 2.5站点,该站点在升级到Plone 4.1rc3(或4.0.x)时似乎具有损坏的Member dir(即使我先升级到3.3.x)。 在升级过程中,我得到以下信息:2011-06-23 13:44:39 ERROR plone.app.upgrade Upgrade aborted. Error:
Traceback (most recent call last):
File \"/Users/aclark/Downloads/eggs-directory/Products.CMFPlone-4.1rc3-py2.6.egg/Products/CMFPlone/MigrationTool.py\",line 175,in upgrade
step[\'step\'].doStep(setup)
File \"/Users/aclark/Downloads/eggs-directory/Products.GenericSetup-1.6.3-py2.6.egg/Products/GenericSetup/upgrade.py\",line 142,in doStep
self.handler(tool)
File \"/Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py\",line 478,in updateLargeFolderType
update(brain)
File \"/Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py\",line 472,in update
obj._setPortalTypeName(\'Folder\')
AttributeError: _setPortalTypeName
> /Users/aclark/Downloads/eggs-directory/plone.app.upgrade-1.1rc3-py2.6.egg/plone/app/upgrade/v40/alphas.py(472)update()
471 obj = brain.getObject()
--> 472 obj._setPortalTypeName(\'Folder\')
473 reindex(obj,idxs=[\'portal_type\',\'Type\',\'object_provides\'])
ipdb> obj
<persistent broken Products.CMFPlone.LargePloneFolder.LargePloneFolder instance \'\\x00\\x00\\x00\\x00\\x00\\x00\\x07W\'>
为什么会这样呢?是否应该已经由LargePloneFolder弃用代码处理过?我以前从未见过。我知道在某些时候,已经对Products.CMPlone和Plone包进行了代码重组(这样,现在一个或另一个成为了填充程序),我想知道这是否可能引起问题。
在ZMI中,members文件夹如下所示:
我该怎么做才能尝试调查/解决此问题?
解决方法
您的成员文件夹来自原型之前的日子。如果我没有记错的话,早期Plone 2.1.x发行版中的ATContentTypes迁移确实会错过大型文件夹。
在Plone 2.5中,创建一个新的\“ Large Plone Folder \”,确保其类型正确(Products.ATContentTypes.content.folder.ATBTreeFolder),将Members文件夹的内容移到其中,删除旧的Members文件夹并重命名给会员的新大文件夹。
也许ATContentTypes迁移代码仍然存在,但是我完全不记得如何调用它了。您还可以基于Products.contentmigration编写自己的迁移代码,然后在Plone 3.x站点中运行该代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。