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 )

Reply via email to