[Zope] Finding unused products
gaute at div.org
Tue Dec 1 02:56:21 EST 2009
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
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
More information about the Zope