Error in to51rc1 while upgrade from plone 5.0.x to 5.2.2 including changing from python 2.7 to python 3.x

Hi Everyone,

Im trying to upgrade from Plone 5.0.x to 5.2.2.
What Ive done:
Installation an 5.2. from scratch and then update to 5.2.2. with buildout - what worked fine !.
Then I copied the blogstorage and filestorage + my products from the 5.0.x installation to the new 5.2.2 Installation.
After an start of the plone 5.2.2. installation I got the possibility to Upgrade on the Webpage.
(http://localhost:8080/xxxx/@@plone-upgrade)

I frist tryed it with an dryrun an got this error:

Ran upgrade step: Run to51rc1 upgrade profile.
Upgrade aborted. Error:
Traceback (most recent call last):
  File "/srv/plone5/buildout-cache/eggs/Products.CMFPlone-5.2.2rc2-py3.6.egg/Products/CMFPlone/MigrationTool.py", line 292, in upgrade
    step['step'].doStep(setup)
  File "/srv/plone5/buildout-cache/eggs/Products.GenericSetup-2.0.2-py3.6.egg/Products/GenericSetup/upgrade.py", line 168, in doStep
    self.handler(tool)
  File "/srv/plone5/buildout-cache/eggs/plone.app.upgrade-2.0.33-py3.6.egg/plone/app/upgrade/v51/betas.py", line 201, in move_safe_html_settings_to_registry
    valid_tags = [tag.decode() for tag in raw_valid_tags]
  File "/srv/plone5/buildout-cache/eggs/plone.app.upgrade-2.0.33-py3.6.egg/plone/app/upgrade/v51/betas.py", line 201, in <listcomp>
    valid_tags = [tag.decode() for tag in raw_valid_tags]
AttributeError: 'str' object has no attribute 'decode'
End of upgrade path, main migration has finished.
The upgrade path did NOT reach current version.
Migration has failed
Dry run selected, transaction aborted

If I understand that right then the mirgation tool to51rc1 is still an release canidate ?
May it be that it only works with python 2.7 ?
Does that mean that I have to Upgrade in using python 2.7 and after that moving to python 3.x ?

ADD: before I tryed 5.2.2 I was trying it with 5.2.1 ..... same error !

Thanks for your help :slight_smile:

Alex

A Python 2 ZODB storage is not directly compatible with Python 3. You must use the tool zodbupdate to convert it into a Python 3 compatible form.

Hi Dieter,

thanks for the advise :slight_smile: - I did run zopeupdate, it did its work. (HINT: on Plone 5.2.2 you have to downgrade to ZODB 5.5 !)

But my problem is still the same .... :frowning:

The upgrade to Plone 5.2 MUST be run with Python 2.7. Only after the upgrade is finished, can you do the migration to Python 3.

See https://docs.plone.org/manage/upgrading/version_specific_migration/upgrade_to_52.html, especially the introductory "Upgrading" section:

This upgrade is different from previous upgrades because Plone 5.2 supports Python 2 and Python 3. The upgrade to 5.2 needs to be done in Python 2.7 and is not different that previous migrations. To run the upgrade to 5.2, follow the links on top of the control panel or the ZMI to the form /@@plone-upgrade .

If you also want to upgrade from Python 2 to 3 with a existing database, you need to run a additional database migration while the site is not running. See the section Python 3 Support below for details about that.

Note that Plone 5.2.2 is still pending, so it is not advisable to use it in production yet. But great if you want to test it!
Currently we are waiting on a new Zope release, which is waiting on a fix in ZEO so the standard ZODB version works correctly. Latest zodbupdate 1.5 already works with the newer ZODB version, so instead of downgrading ZODB, you can upgrade zodbupdate.
But that is not what is causing your problem.

Yeah I just wanted to create an Upgradepath for me thats working and so I thought as I saw the error above, maybe its an good Idea to use the latest version (even if not stable .....)
But thanks for the hint to use Python 2.7 first and then moving to python 3 ... :slight_smile:

Having it in production is the best motivation to fix bugs quickly :wink:

Plone Foundation Code of Conduct