Plone 2.1.3> 3.0.6升级失败,出现TypeError:unsubscriptable对象

时间:2017-11-30 14:48:07

标签: plone-3.x

当我在Plone 2.1.3中对来自Plone 2.1.3的Data.fs执行portal_migration时,迁移失败并出现TypeEror:

Attempting to upgrade from: 2.5-alpha1
Upgrade aborted
Error type: exceptions.TypeError
Error value: unsubscriptable object
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFPlone/MigrationTool.py", line 210, in upgrade newv, msgs = self._upgrade(newv)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFPlone/MigrationTool.py", line 321, in _upgrade res = function(self.aq_parent)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFPlone/migrations/v2_5/alphas.py", line 46, in alpha1_alpha2 installPlonePAS(portal, out)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFPlone/migrations/v2_5/alphas.py", line 66, in installPlonePAS installOrReinstallProduct(portal, 'PlonePAS', out)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFPlone/migrations/migration_util.py", line 85, in installOrReinstallProduct qi.installProduct(product_name, hidden=hidden)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/CMFQuickInstallerTool/QuickInstallerTool.py", line 367, in installProduct res=install(portal)
File "/home/applinet/local/carrieretijger/plone30/plone/installation/lib/python/Products/ExternalMethod/ExternalMethod.py", line 231, in __call__ try: return f(*args, **kw)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PlonePAS/Extensions/Install.py", line 906, in install restoreUserData(portal, out, userdata)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PlonePAS/Extensions/Install.py", line 355, in restoreUserData mtool.addMember(*u[:5])
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PlonePAS/tools/membership.py", line 66, in addMember acl_users._doAddUser(id, password, roles, domains)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PlonePAS/pas.py", line 49, in _doAddUser retval = _old_doAddUser(self, login, password, roles, domains)
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PluggableAuthService/PluggableAuthService.py", line 941, in _doAddUser if useradder.doAddUser( login, password ):
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PluggableAuthService/plugins/ZODBUserManager.py", line 221, in doAddUser self.addUser( login, login, password )
File "/home/applinet/local/carrieretijger/plone30/plone/carrieretijger_plone30/Products/PlonePAS/plugins/user.py", line 68, in addUser if not AuthEncoding.is_encrypted(password):
File "/home/applinet/local/carrieretijger/plone30/plone/installation/lib/python/AccessControl/AuthEncoding.py", line 161, in is_encrypted if pw[:lp] == prefix:
End of upgrade path, migration has finished
The upgrade path did NOT reach current version
Migration has failed

可能导致此问题的原因以及如何解决?

1 个答案:

答案 0 :(得分:0)

失败是由我试图迁移的Plone站点中的孤立成员数据引起的。

解决方案:在尝试迁移之前,作为plone站点的ZMI中的管理员,转到portal_memberdata并在Contents选项卡上单击按钮Prune orphaned member record。然后将Data.fs复制到新的Plone 3.0并继续迁移。

在我的情况下,迁移然后一直成功到Plone 3.0.6。