-
-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide Migration-Story for ZODB with Plone from Python 2 to 3 #2525
Comments
See zopefoundation/Zope#285 for the |
I played with zodbupdate a bit a week or so ago and it seems promising, but will probably take some work to get great results. Here's the basic path:
So far I only tried this with a fresh Plone site, so no real data. It would be interesting to try with a real site to get a sense of how long the migration takes in practice. Some remaining issues I found:
I'm sure there are more issues. Some things that come to mind to pay attention to:
|
I added the options to migrate zodbupdate to migrate my application to Python3. That worked fine, and we are running Python 3 in production since March. There's some stuff to know:
I doubt migrating a Plone site will be easy, and will depend a lot on the extensions that has been installed and the custom code written, since they should be checked for strings/bytes problems. |
Although |
Thanks for sharing your experience @thefunny42! could you please email me this script or post the relevant parts here/as gist so i can use it for documenting the migration of plone sites? Thanks a lot! |
i prepared a buildout and documented the process of creating a sample plonesite running python2 and migrate it to python3. you can find everything under https://github.com/frisi/coredev52multipy/tree/zodbupdate i also started to document the plone-specific problems and possible solutions there. it is pretty much a summary of @davisagli @thefunny42 and @icemac writeups including some information on where to hook into to fix it. |
Some additional information:
|
@frisi I've only skimmed your writeup so far, but it looks really great! The same results I was discovering, but much more clearly written. |
i removed myself as an assignee as i won't be able to carry on with the zodb-py3 migration in the near future. hope my current findings and documentation will help other contributors to get startet. @thefunny42 thanks for your comments and fixes on the zodbupdate tickets/PR. @davisagli could you please have a look at the updated ticket description. i tried to add an overview over the currently known migration tasks and created/linked tickets where i summarized the current state. thank you all for you help on this topic and happy migrating ;-) |
FYI: I added I used the script to convert an almost vanilla Plone 5.2 py2 DB (p.a.multilingual installed) to py3 and it worked. I did not in-depth testing on the DB, but the content is shown, login works, edit works. |
The updated docs are merged: https://github.com/plone/documentation/blob/5.2/manage/upgrading/version_specific_migration/upgrade_to_python3.rst |
At Saltlabs Sprint @dwt and I worked on the migration story for Plone and ZMS.
I would say we now have a good documented working migration story. |
Note: The catalog problem is probably solved. It needs one more check. |
ad "write the required zodbupdate_decode_dict for all the packages in Plone that need it": I would say all is done here. But we may need more real life migrations to verify. |
I consider this done. Additional docs are in https://community.plone.org/t/best-practice-documentation-on-zodb-debugging/12778 |
ZODB itself is compatible with Python 3 but a DB created in Python 2.7 cannot be used in Python 3 without being modified before.
After some evaluation of different approaches (see https://blog.gocept.com/2018/06/07/migrate-a-zope-zodb-data-fs-to-python-3) https://github.com/zopefoundation/zodbupdate#migration-to-python-3 seems to be a good approach.
If you want to contribute to the documentation or implementation of ZODB Python 3 migration for Plone this README provides some introduction and background information that helps you to get started.
We need to:
current state and findings in https://github.com/frisi/coredev52multipy/tree/zodbupdate
provide a python3 migration view for Plone5.2: Provide a Python 3 upgrade form/view #2575improvements for zodbupdate that will make migrator's lifes easier:
The text was updated successfully, but these errors were encountered: