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
