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