For the problem with IPersistentExtra
I opened an issue in Zope. Conclusion from there: core Zope does not have this problem, so it is Plone specific. And it is not even necessarily a problem in core Plone: a Plone 5.1 site with the standard content does not have this issue when migrated to 5.2.
I did not like my aliases solution, so I did not want to use the eea.aliases
package based on that. Instead, I went with only a rename dictionary for zodbupdate
, and loading the dexterity utility.
So here is another tool that you can use: zest.zodbupdate
. See PyPI and source code.
My thinking now is: some of the problems that zodbverify
complains about, are problems that zodbupdate
will solve. So the idea is now (from the readme of zest.zodbupdate
):
-
First with Python 2.7, run
bin/zodbupdate -f var/filestorage/Data.fs
So no python3 convert stuff! This will detect and apply several explicit and implicit rename rules. -
Then run
bin/instance zodbverify
. If this still gives warnings or exceptions, you may need to define more rules and apply them with zodbupdate. -
When all is well, on Python 3 run:
bin/zodbupdate --convert-py3 --file=var/filestorage/Data.fs --encoding utf8
-
For good measure, on Python 3 run
bin/instance zodbverify
.