2011/1/17 Dylan Jay <[email protected]>

> On 17/01/2011, at 3:06 AM, derek wrote:
>
>  On Jan 16, 11:16 am, Laurence Rowe <[email protected]> wrote:
>>
>>> hvelarde wrote:
>>>
>>>  guys, is a very bad practice not to write uninstallers (and tests for
>>>> them) in your products.
>>>>
>>>
>>> Unfortunately it is almost impossible to write an uninstaller - as even
>>> removing a persistent component registration does not remove all
>>> references
>>> to that key.
>>>
>>
>> I'm so thrilled to see that from someone I consider an authoritative
>> source!  "Almost impossible" probably explains why I've yet to find an
>> even half-way decent howto.
>>
>>  And for people who write packages as part of customer projects,
>>> it is difficult to justify the time to write an uninstaller.
>>>
>>
>> Exactly. I'd bite the bullet and try to write a good uninstaller if I
>> was making products for the general public, but for my one-off
>> customer projects it really doesn't seem worth the effort.
>>
>>  I think the
>>> real solution to this is to make content import/export work work
>>> correctly
>>> (getting close with transmogrifier) so that you can zap and recreate a
>>> site
>>> complete with content.
>>>
>>
>> Close, but still no cigar.  Dylan's done a good job with funnelweb, as
>> far as it goes, but there's still a major manual component in
>> importing content.
>>
>
> Funnelweb is for "random site"->Plone conversions. There are much better
> tools for Plone->Plone content migrations since they can make more
> assumptions and gain deeper access to the data. Is there a name for these?
>
>
Ok, FINALLY after a week long looking after this I have them (hopefully)
gone :)

The basic modus operandi was:
- add the offending products on the buildout
- run the buildout
- uninstall all products still installed
- force the generic setup code to run by reinstalling a module which has
propertiestool (membrane for example)
- remove all the tools on the ZMI site root
- add an ipdb to GenericSetup/registry.py on listRequiredTools method (line
576 or so)
- remove the offending products on the buildout and rerun it
- remove the products from ZMI -> Control_Panel -> Products
- remove the portal_setup missing steps (if any)
- force the generic setup code again and when it hits the ipdb remove the
tools with a "del self._required['TOOL_NAME']

That way they are gone for good!

I hope it will be useful to someone.

Thanks for all the pointers and ideas!

Cheers,

-- 

*Gil Forcada**
*C/Llacuna, 166 2n.2a (Edifici Llacuna)
telf: 93.188.88.12 - 619.65.34.92
fax: 93.320.93.97
(08018) BARCELONA
[email protected]
www.usecm.com
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to