On Mon, 2009-11-30 at 10:59 -0500, Tres Seaver wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Gaute Amundsen wrote: > > On Sun, 2009-11-29 at 16:05 -0500, Tres Seaver wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- > >> Hash: SHA1 > >> > >> Gaute Amundsen wrote: > >>> On Sun, 2009-11-29 at 12:32 +0100, Jens Vagelpohl wrote: > >>>> On Nov 29, 2009, at 11:59 , Gaute Amundsen wrote: > >>>> > >>>>> Quick question before I reinvent. > >>>>> > >>>>> Is there some established way of finding products which have no > >>>>> instances in zodb, and can be safely removed? > >>>> No there isn't. You may have to invest some time writing a script that > >>>> visits all objects to find out what products they belong to. It may > >>>> not be worth the effort. > >>>> > >>>> jens > >>> Unfortunately it has "not been worth the effort" for a number of years, > >>> but now it has become unavoidable. > >>> Walking the tree it is then. > >> You could probably work directly with the pickles way faster than > >> activating every object in a large site: look at the 'fsdump' script > >> for clues. > >> Tres. > > > > Thanks for the tip, but testing a few tings now, it seems I would > > probably spend way more time on the learning-curve than I'd save in > > parsing. > > > > I think, I'll rather stick my expensive parse results i a table, and > > work from that. > > > > Unless you think otherwise and can point me towards how to get both the > > path, and the metatype out of that pickle. :-) > > The pickle holds the dotted name of the instance class, which should be > a clue. ;)
I spotted that playing around with fsdump yes. On second thought I guess my hidden assumption was that context.all_meta_types() would give me the best list of installed products to compare against, and thus I would need the actual meta_type string. On examining the results of the first run of my db-based script, I'm not so sure. It's after all just some strings.. Perhaps I ought to rephrase that as a question :) Can I rely on context.all_meta_types() being complete, or could a product have installed objects that would not be in that list? Is there some other, more reliable way to link an object to it's product? Gaute _______________________________________________ Zope maillist - Zope@zope.org https://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope-dev )