2008/11/07

Scratching an deployment itch

Recently we deployed 8 Plone instances at the same time running on almost the same code base. Buildout and deployment helper tools actually did a great job automating the deployment task -- with a few mandatory glitches.

However, one piece was missing in the puzzle: A consistent way to deal with running profiles and re-installing Products.

One thing is deploying a controlled code base. Another thing is changing the database state afterwards. When code adjustments and fresh packages needs to be deployed, we often see the need of changing configuration that resides in the ZODB, such as:
  • Configuration of actions, content types, workflows, kupu and actions
  • Persistent Archetypes schemas that needs to be synced with the code base
  • Boilerplate content that just needs to be there
Generic Setup profiles and upgrade steps are a great way to deal with that. However, we still need to run them by hand. And with 8 sites and counting it is a bit boring to login and click-activate those profiles each time we deploy.

Besides being boring, it is also error prone. Often you need to run profiles in the right order not to mess up a site.

To scratch that itch we wrote a small buildout recipe: collective.recipe.updateplone
It lets you run Product installs, profiles and update profiles when you run the buildout. And it makes sure only to run them once. Give it a spin and give some feedback.

1 comment:

Rok Garbas said...

nice recipe. quite a cook you are :P
definitly something i need to try