.. Ross Patterson's Blog imported post, created by `$ ./bin/rfc822-to-post` on Mar 15, 2021. .. meta:: :description: It's that time again to upgrade my Blog to the latest Plone. :keywords: Plone .. post:: Apr 01, 2010 :tags: Plone :author: Ross Patterson :redirect: @@redirect-to-uuid/da9e03d7ca408a18610032f3313708a8 ################### Dogfood Dinner Bell ################### It's that time again to upgrade my Blog to the latest Plone. With the first Plone 4 Beta out it's time to eat my own dogfood and upgrade my blog. This site is now running on Plone 4.0b1-1. So come poke around if you like and tell me what's broken. :) The upgrade went pretty smoothly for my main site. I had some other, older, Plone portals where I've installed various add-ons in the past and for those I had to do some manual cleanup of some broken objects. The unified folder implementation makes removing broken objects very difficult. The manage_delObjects(), _delObject, and _delOb methods are all broken before the folders have been migrated but the migration won't complete if there are broken objects in the folder. I had to do something like this where "idx" is the index in _objects of the broken object and 'foo' is the id:: >>> folder._objects = folder._objects[:idx]+folder._objects[idx+1:] >>> delattr(folder, 'foo') >>> import transaction >>> transaction.commit() On two of my portals I also had some regular TextIndex'es in the catalog, which I guess are no longer around. Those I was able to just delete in the "Indexes" tab of the ZMI for portal_catalog. Since these were core indexes like "Title" I used portal_setup to install just the catalog import step from the Plone base profile. Being a base profile this means running the import step cleared the indexes so I also had to update those catalogs. After all that was done I just uninstalled the classic theme and Kupu and then installed and configured `plone.app.caching `_. Everything seems to be working well. Just to polish things off, I wanted to make sure I was getting the full benefit of `Hanno's ExtensionClass/ZODB fix `_. The one thing I can't find is a clear migration procedure. As far as I understand the ZODB, the objects created before the fix would need to be written to the ZODB again to see the benefit from the fix. So I used the following at a "bin/instance debug" prompt:: >>> app.ZopeFindAndApply(app, search_sub=1, apply_func=lambda obj, path: setattr(obj, '_p_changed', True)) >>> import transaction >>> transaction.commit() That *should* do it, but if anyone knows how that's insufficient or knows a better way to accomplish the migration, please do leave a comment. .. update:: Apr 01, 2010 Imported from Plone on Mar 15, 2021. The date for this update is the last modified date in Plone.