[Plone-Users] Migration from 2.1.4 to 3.3.1 Failure

2 views
Skip to first unread message

Christian...@vermeil.org

unread,
Dec 30, 2009, 4:19:17 AM12/30/09
to plone...@lists.sourceforge.net
In order to progress on the migration process I created an empty
site on the 2.1.4 configuration and I checked that it is possible to
import it in the 3.3.1 configuration.
Then I updated this empty site with the user information (acl_users,
portal_memberdata). With this updated site the migration process fails
with the following message:

* Dry run selected.
* Starting the migration from version: 2.1.4
* Attempting to upgrade from: 2.1.4
* Registered tools as utilities.
* Added setup_tool.
* Installed CMFPlacefulWorkflow.
* Upgrade to: 2.5-alpha1, completed
* Attempting to upgrade from: 2.5-alpha1
* Registered tools as utilities.
* Installed PasswordResetTool.
* Installed PlonePAS.
* Added directory view for plone_deprecated
* Added plone_deprecated to Plone Default
* Added plone_deprecated to Plone Tableless
* Upgrade to: 2.5-alpha2, completed
* Attempting to upgrade from: 2.5-alpha2
* Registered tools as utilities.
* Added dragdropreorder.js to portal_javascipt
* Added KeywordIndex 'getEventType' to portal_catalog.
* Migrated old actions to new actions stored in portal_actions.
* Added/modified home/index_html portal_tabs action.
* Upgrade to: 2.5-beta1, completed
* Attempting to upgrade from: 2.5-beta1
* Registered tools as utilities.
* Added 'large_site' property to site_properties.
* Updated icons for copy, cut, paste and delete
* Migrated old actions to new actions stored in portal_actions.
* Changed condition on action document_actions/addtofavorites from:
"python: member and portal.portal_membership.getHomeFolder() is
not None" to: "python:member and
portal.portal_membership.getHomeFolder() is not None"
* Changed condition on action folder_buttons/cut from:
"python:portal.portal_membership.checkPermission("Delete objects",
object)" to: "python:checkPermission("Delete objects", object)"
* Changed condition on action folder_buttons/change_state from:
"python:portal.portal_membership.checkPermission("Modify portal
content", object) or
portal.portal_membership.checkPermission("Review portal content",
object)" to: "python:checkPermission("Modify portal content",
object) or checkPermission("Review portal content", object)"
* Changed url expression on action object/folderContents from:
python:((object.isDefaultPageInFolder() and
object.getParentNode().absolute_url()) or
folder_url)+'/folder_contents' to:
string:${globals_view/getCurrentFolderUrl}/folder_contents
* Changed condition on action object/reply from: "python: object is
not None and
portal.portal_discussion.isDiscussionAllowedFor(object)" to:
"python:object is not None and
portal.portal_discussion.isDiscussionAllowedFor(object)"
* Changed condition on action object/syndication from: "python:
folder is object and
portal.portal_syndication.isSiteSyndicationAllowed()" to:
"python:folder is object and
portal.portal_syndication.isSiteSyndicationAllowed()"
* Changed condition on action object_buttons/cut from:
"python:portal.portal_membership.checkPermission("Delete objects",
object.aq_inner.getParentNode()) and
portal.portal_membership.checkPermission("Copy or Move", object)
and object is not portal and not (object.isDefaultPageInFolder()
and object.getParentNode() is portal)" to:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)"
* Changed url expression on action object_buttons/cut from:
python:"%s/object_cut"%(object.isDefaultPageInFolder() and
object.getParentNode().absolute_url() or object_url) to:
string:${globals_view/getCurrentObjectUrl}/object_cut
* Changed condition on action object_buttons/cut from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)" to: "python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and not globals_view.isPortalOrPortalDefaultPage()"
* Changed condition on action object_buttons/cut from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and not globals_view.isPortalOrPortalDefaultPage()"
to: "python:checkPermission("Delete objects",
globals_view.getParentObject()) and checkPermission("Copy or
Move", object) and not globals_view.isPortalOrPortalDefaultPage()"
* Changed condition on action object_buttons/copy from: "python:
portal.portal_membership.checkPermission("Copy or Move", object)
and object is not portal and not (object.isDefaultPageInFolder()
and object.getParentNode() is portal)" to:
"python:portal.portal_membership.checkPermission("Copy or Move",
object) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)"
* Changed condition on action object_buttons/copy from:
"python:portal.portal_membership.checkPermission("Copy or Move",
object) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)" to: "python:checkPermission("Copy or Move", object) and
object is not portal and not (object.isDefaultPageInFolder() and
object.getParentNode() is portal)"
* Changed url expression on action object_buttons/copy from:
python:"%s/object_copy"%(object.isDefaultPageInFolder() and
object.getParentNode().absolute_url() or object_url) to:
string:${globals_view/getCurrentObjectUrl}/object_copy
* Changed condition on action object_buttons/copy from:
"python:checkPermission("Copy or Move", object) and object is not
portal and not (object.isDefaultPageInFolder() and
object.getParentNode() is portal)" to:
"python:checkPermission("Copy or Move", object) and not
globals_view.isPortalOrPortalDefaultPage()"
* Changed url expression on action object_buttons/paste from:
python:"%s/object_paste"%((object.isDefaultPageInFolder() or not
object.is_folderish()) and object.getParentNode().absolute_url()
or object_url) to:
string:${globals_view/getCurrentFolderUrl}/object_paste
* Changed condition on action object_buttons/delete from:
"python:portal.portal_membership.checkPermission("Delete objects",
object.aq_inner.getParentNode()) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)" to: "python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)"
* Changed url expression on action object_buttons/delete from:
python:"%s/object_delete"%(object.isDefaultPageInFolder() and
object.getParentNode().absolute_url() or object_url) to:
string:${globals_view/getCurrentObjectUrl}/object_delete
* Changed condition on action object_buttons/delete from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)" to: "python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and not
globals_view.isPortalOrPortalDefaultPage()"
* Changed condition on action object_buttons/delete from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and not
globals_view.isPortalOrPortalDefaultPage()" to:
"python:checkPermission("Delete objects",
globals_view.getParentObject()) and not
globals_view.isPortalOrPortalDefaultPage()"
* Changed condition on action object_buttons/rename from:
"python:portal.portal_membership.checkPermission("Delete objects",
object.aq_inner.getParentNode()) and
portal.portal_membership.checkPermission("Copy or Move", object)
and portal.portal_membership.checkPermission("Add portal content",
object) and object is not portal and not
(object.isDefaultPageInFolder() and object.getParentNode() is
portal)" to: "python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and checkPermission("Add portal content", object)
and object is not portal and not (object.isDefaultPageInFolder()
and object.getParentNode() is portal)"
* Changed url expression on action object_buttons/rename from:
python:"%s/object_rename"%(object.isDefaultPageInFolder() and
object.getParentNode().absolute_url() or object_url) to:
string:${globals_view/getCurrentObjectUrl}/object_rename
* Changed condition on action object_buttons/rename from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and checkPermission("Add portal content", object)
and object is not portal and not (object.isDefaultPageInFolder()
and object.getParentNode() is portal)" to:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and checkPermission("Add portal content", object)
and not globals_view.isPortalOrPortalDefaultPage()"
* Changed condition on action object_buttons/rename from:
"python:checkPermission("Delete objects",
object.aq_inner.getParentNode()) and checkPermission("Copy or
Move", object) and checkPermission("Add portal content", object)
and not globals_view.isPortalOrPortalDefaultPage()" to:
"python:checkPermission("Delete objects",
globals_view.getParentObject()) and checkPermission("Copy or
Move", object) and checkPermission("Add portal content", object)
and not globals_view.isPortalOrPortalDefaultPage()"
* Changed url expression on action portal_tabs/index_html from:
string:${here/@@plone/navigationRootUrl} to:
string:${globals_view/navigationRootUrl}
* Changed condition on action user/mystuff from: "python: member and
portal.portal_membership.getHomeFolder()" to: "python:member and
portal.portal_membership.getHomeFolder()"
* Changed url expression on action user/myworkspace from: python:
portal.portal_membership.getHomeUrl()+"/workspace" to:
python:portal.portal_membership.getHomeUrl()+"/workspace"
* Changed condition on action user/myworkspace from: "python: member
and portal.portal_membership.getHomeFolder() is not None" to:
"python:member and portal.portal_membership.getHomeFolder() is not
None"
* Changed url expression on action user/myworkspace from:
python:portal.portal_membership.getHomeUrl()+"/workspace" to:
string:${portal/portal_membership/getHomeUrl}/workspace
* Changed condition on action user/favorites from: "python: member
and hasattr(portal.portal_membership.getHomeFolder(),
"Favorites")" to: "python:member and
hasattr(portal.portal_membership.getHomeFolder(), "Favorites")"
* Fixed RTL.css expression to use the @@plone view
* Upgrade to: 2.5-beta2, completed
* Attempting to upgrade from: 2.5-beta2
* Upgrade to: 2.5-rc1, completed
* Attempting to upgrade from: 2.5-rc1
* Upgrade to: 2.5-rc2, completed
* Attempting to upgrade from: 2.5-rc2
* Upgrade to: 2.5-rc3, completed
* Attempting to upgrade from: 2.5-rc3
* Upgrade to: 2.5, completed
* Attempting to upgrade from: 2.5
* Registered tools as utilities.
* Added event-registration.js to portal_javascipt
* Migrated old actions to new actions stored in portal_actions.
* Added/modified delete object_buttons action.
* Upgrade to: 2.5.1-rc1, completed
* Attempting to upgrade from: 2.5.1-rc1
* Registered tools as utilities.
* Migrated old actions to new actions stored in portal_actions.
* Added/modified delete object_buttons action.
* Upgrade to: 2.5.1, completed
* Attempting to upgrade from: 2.5.1
* Registered tools as utilities.
* Changed credentials_cookie_path login_path property to
'require_login'.
* Upgrade to: 2.5.2-rc1, completed
* Attempting to upgrade from: 2.5.2-rc1
* Upgrade to: 2.5.2, completed
* Attempting to upgrade from: 2.5.2
* Added `text/x-web-markdown` and `text/x-web-textile`.
* Upgrade to: 2.5.3-rc1, completed
* Attempting to upgrade from: 2.5.3-rc1
* Upgrade to: 2.5.3-final, completed
* Attempting to upgrade from: 2.5.3-final
* Set plone GS profile as default
* Upgrade to: 2.5.4-final, completed
* Attempting to upgrade from: 2.5.4-final
* Upgrade to: 2.5.4-2, completed
* Attempting to upgrade from: 2.5.4-2
* Upgrade to: 2.5.5, completed
* Attempting to upgrade from: 2.5.5
* Upgrade aborted
* Error type: ZODB.POSException.ConnectionStateError
* Error value: Shouldn't load state for 0x040d90 when the connection
is closed
* File
"/usr/local/Plone/buildout-cache/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/MigrationTool.py",
line 210, in upgrade newv, msgs = self._upgrade(newv)
* File
"/usr/local/Plone/buildout-cache/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/MigrationTool.py",
line 321, in _upgrade res = function(self.aq_parent)
* File
"/usr/local/Plone/buildout-cache/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/migrations/v3_0/alphas.py",
line 130, in three0_alpha1 convertLegacyPortlets(portal, out)
* File
"/usr/local/Plone/buildout-cache/eggs/Plone-3.3.1-py2.4.egg/Products/CMFPlone/migrations/v3_0/alphas.py",
line 608, in convertLegacyPortlets convert_legacy_portlets(portal)
* File
"/usr/local/Plone/buildout-cache/eggs/plone.app.portlets-1.2-py2.4.egg/plone/app/portlets/utils.py",
line 101, in convert_legacy_portlets
leftAssignable[leftChooser.chooseName(None, newPortlet)] = newPortlet
* File
"/usr/local/Plone/buildout-cache/eggs/plone.app.portlets-1.2-py2.4.egg/plone/app/portlets/storage.py",
line 123, in chooseName name = getattr(object, 'title', None)
* File
"/usr/local/Plone/Zope-2.10.9-final-py2.4/lib/python/ZODB/Connection.py",
line 758, in setstate raise ConnectionStateError(msg)
* End of upgrade path, migration has finished
* The upgrade path did NOT reach current version
* Migration has failed
* Dry run selected, transaction aborted

Any suggestion to fix this problem?

It seems that the migration from the 2.1.4 version to the 3.3.1
version is much more complex than expected. I am wondering if there is a
possible alternative to the process that I am using (export -> zexp ->
import -> migration). I can use a copy/paste approach for the content.
However, I do not know how to apply this copy/paste approach to copy all
user related information.

Thanks for your help,
Christian


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Plone-Users mailing list
Plone...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plone-users

cewing

unread,
Dec 30, 2009, 8:08:20 PM12/30/09
to plone...@lists.sourceforge.net

ChristianJ wrote:
>
> It seems that the migration from the 2.1.4 version to the 3.3.1
> version is much more complex than expected. I am wondering if there is a
> possible alternative to the process that I am using (export -> zexp ->
> import -> migration). I can use a copy/paste approach for the content.
> However, I do not know how to apply this copy/paste approach to copy all
> user related information.
>
> Thanks for your help,
> Christian
>

Is there something wrong with following a multi-step in-place upgrade? That
is, can you just upgrade the site's Data.fs directly from one version of
Plone to the next (2.1 > 2.5 > 3.0 > 3.2 > 3.3) or something like that?
There are a plethora of documents covering migration strategies on plone.org
(http://plone.org/upgrade). These should give you an idea of the proper way
to manage a migration across multiple version changes all the way from plone
2.1 up to 3.3.

HTH
c

--
View this message in context: http://n2.nabble.com/Migration-from-2-1-4-to-3-3-1-Failure-tp4231531p4234765.html
Sent from the General Questions mailing list archive at Nabble.com.

dthomas218

unread,
Dec 31, 2009, 6:11:31 PM12/31/09
to plone...@lists.sourceforge.net

Export/import of zexp only work with identical versions of Plone and with
identical products installed. A staged migration is one approach.

If that fails you might look at ilrt.contentmigrator:
http://pypi.python.org/pypi/ilrt.contentmigrator/0.5.

Dan

cewing wrote:
>
>
> ChristianJ wrote:
>>
>> It seems that the migration from the 2.1.4 version to the 3.3.1
>> version is much more complex than expected. I am wondering if there is a
>> possible alternative to the process that I am using (export -> zexp ->
>> import -> migration). I can use a copy/paste approach for the content.
>> However, I do not know how to apply this copy/paste approach to copy all
>> user related information.
>>
>> Thanks for your help,
>> Christian
>>
>
> Is there something wrong with following a multi-step in-place upgrade?
> That is, can you just upgrade the site's Data.fs directly from one version
> of Plone to the next (2.1 > 2.5 > 3.0 > 3.2 > 3.3) or something like that?
> There are a plethora of documents covering migration strategies on
> plone.org (http://plone.org/upgrade). These should give you an idea of
> the proper way to manage a migration across multiple version changes all
> the way from plone 2.1 up to 3.3.
>
> HTH
> c
>
>

--
View this message in context: http://n2.nabble.com/Migration-from-2-1-4-to-3-3-1-Failure-tp4231531p4238225.html

Reply all
Reply to author
Forward
0 new messages