[Product-Developers] Re: Questions regarding GS upgradeStep

Francois Barriere francois.barriere at atmel.com
Mon Sep 7 09:11:12 UTC 2009


On Sat, 5 Sep 2009 10:48:16 +0000 (UTC)
Maurits van Rees <m.van.rees at zestsoftware.nl> wrote:

> Francois Barriere, on 2009-09-04:
> > Hello,
> > [...]
> > When upgrading the Python code is executed by the regular import steps are
> > not (the changes in profles/default/diff_tool.xml) are not reflected.
> > I thought the upgrade would re-run the import steps of the profile...
> 
> No.  One of the goals up upgrade steps is to have a means to *avoid*
> having to apply the complete profile, as that can have unwanted side
> effects.  Probably the best known example is the catalog.xml: if you
> specify an index there, then this index will be empty after applying
> the profile (or just this import step), even when it already existed.
> 

   OK, I understand.

> > Am I wrong? Should I force the import step from my Python code?
> > In this case, what is the use of the "profile" attibute of the
> > upgradeStep?
> 
> The profile attribute marks this upgrade step as being an upgrade for
> the ATMEL.policy:default profile and not for say the Products.Poi
> profile.
> 
> If you want to reapply the complete profile in an upgrade step, you
> can do that like this:
> 
> def applyProfile(context):
>     # In an upgrade step context is portal_setup
>     context.runAllImportStepsFromProfile(PROFILE_ID)

   This is what I have finally coded (almost, as I just need a single
   step, in my case).

> BTW, this post of mine to the CMF mailing list with some notes about
> which source and destination numbers to use may be of interest:
> 
> http://www.mail-archive.com/zope-cmf@lists.zope.org/msg06107.html
> 

   Thanks. It contains usefull informations.

> Specifying source="*" like you do will always make this step available
> on the Upgrades tab of portal_setup, even right after you have run
> it.  At least that is the case with Plone 3.0-3.3.
> 

   The old version was "unknown" so I used "*" to make sure it matches,
but after a test using "unknown" works too. I will test it against a
numbered version to make sure it is only triggered to migrate from
"unknown" to "0.3" (or make sure running twice the migration steps has
no side effect).

Francois.

-- 
   Francois BARRIERE                          ATMEL
                                              Zone Industrielle
   Tel: (33) 0 442 53 61 98                   13106 ROUSSET
E-Mail: francois.barriere at atmel.com           FRANCE
                 ---------------------------------
Everyone knows that debugging is twice as hard as writing a program 
in the first place. So if you're as clever as you can be when you write it, 
how will you ever debug it? (Brian Kernighan)
                 ---------------------------------




More information about the Product-Developers mailing list