我有一个Plone 2.5网站,升级到Plone 4.1rc3(或4.0.x)时似乎有一个破坏的会员目录(即使我先升级到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文件夹如下所示:
我可以做些什么来尝试调查/解决此问题?
答案 0 :(得分:5)
您的会员文件夹来自Archetypes之前的日子。如果我没记错,早期Plone 2.1.x版本中的ATContentTypes迁移确实错过了大文件夹。
在Plone 2.5中创建一个新的“大Plone文件夹”,确保它的类型正确(Products.ATContentTypes.content.folder.ATBTreeFolder),将Members文件夹的内容移入其中,删除旧的Members文件夹和将新的大文件夹重命名为Members。
也许ATContentTypes迁移代码仍然存在,但我根本不记得如何调用它。您也可以根据Products.contentmigration编写自己的迁移代码,并在Plone 3.x站点中运行它。