[Zope-CMF] [dev] CMF 2.2: upgrade steps

yuppie y.2009 at wcm-solutions.de
Mon Dec 7 06:05:24 EST 2009


Hi!


CMFDefault 2.2.0-beta ships with several upgrade steps. The goal is to 
make migrating old CMF sites easier without using write-on-read 
migration code or special migration scripts.


This is how the upgrade steps can be used:

1.) Make a backup of your site. Update Zope and CMF to the latest 
version and restart Zope.

2.) In the ZMI, go to the 'upgrades' tab of portal_setup and select the 
profile ('Products.CMFDefault:default' in CMF).

3.) Older CMF versions didn't set the profile version of the site, so 
the tab says "The profile 'Products.CMFDefault:default' is currently 
upgraded to version unknown." If you did create the site in CMF 2.1 all 
'2.0 -> 2.1' steps should be marked as done and it should be save to run 
"Mark 2.1 upgrade as finished". After that the tab says "The profile 
'Products.CMFDefault:default' is currently upgraded to version 2.1." and 
shows only '2.1 -> 2.2' steps.

4.) You can now run the '2.1 -> 2.2' steps and test your site. Some 
additional manual upgrade steps might be necessary.

5.) If you are done with the upgrade of your site, run "Mark 2.2 upgrade 
as finished". Now the filesystem version and the profile version of the 
site are the same. No upgrade steps are shown.

6.) If something did go wrong or if you already upgraded to an alpha 
version of CMFDefault 2.2, you can show th old upgrade steps using the 
'Show' button. If one of those steps is not marked as done, it might be 
necessary to (re-)run that step.


This is just the first cut. Several improvements are possible:

- Real world testing: If people report difficulties, the upgrade steps 
can be improved based on the feedback.

- Unit testing: The steps currently have no tests. In theory a site 
created in CMF 2.1 and migrated to CMF 2.2 should produce exactly the 
same snapshot as a new CMF 2.2 site. Maybe someone can write a test for 
that.

- The MetadataTool has write-on-read migration code in _get_DCMI. That 
should be converted into two migration steps: One from CMF 1.6 to CMF 
2.0 and one from 2.1 to 2.2.

- The upgrade scripts in CMFCore/Extensions and CMFDefault/Extensions 
should be converted to upgrade steps.

- An upgrade step for adding the new singlestate_workflow should be written.


Cheers,

	Yuppie



More information about the Zope-CMF mailing list