2017-06-23 5 views
1

J'essaie de supprimer des objets d'un ZODB qui référencent des classes qui n'existeront plus dans le futur. Voici le problème: je suis en mesure de le trouver par oid mais je ne sais pas ce qui se réfère à cela. Toutes les choses évidentes ont été faites - j'ai supprimé le contenu réel Plone et même le stockage de l'histoire.Recherche et suppression d'objets par oid

J'ai fait une exportation XML pour trouver le oid et peut l'obtenir dans le débogueur:

from ZODB.utils import p64 
>>> ob=app._p_jar[p64(113955)] 
>>> list(ob) 
[<InterfaceClass OFS.interfaces.IFolder>, <InterfaceClass plone.app.contenttypes.interfaces.IFolder>, <InterfaceClass plone.folder.interfaces.IFolder>, <InterfaceClass Products.CMFCore.interfaces._content.IFolderish>, <InterfaceClass Products.GroupSpace.interfaces.IGroupSpace>, <InterfaceClass z3c.relationfield.interfaces.IHasIncomingRelations>, <InterfaceClass z3c.relationfield.interfaces.IHasOutgoingRelations>, <InterfaceClass z3c.relationfield.interfaces.IHasRelations>, <InterfaceClass plone.namedfile.interfaces.IImageScaleTraversable>, <SchemaClass ims.issuetracker.interfaces.IIssue>, <InterfaceClass OFS.interfaces.IItem>, <InterfaceClass zope.container.interfaces.IItemContainer>, <InterfaceClass zope.interface.common.mapping.IItemMapping>, <InterfaceClass plone.app.iterate.interfaces.IIterateAware>, <SchemaClass ims.behaviors.interfaces.modified.ILastModifiedBy>, <InterfaceClass plone.portlets.interfaces.ILocalPortletAssignable>, <InterfaceClass zope.location.interfaces.ILocation>, <InterfaceClass OFS.interfaces.IManageable>, <InterfaceClass Products.CMFCore.interfaces._content.IMinimalDublinCore>, <InterfaceClass Products.CMFCore.interfaces._content.IMutableDublinCore>, <InterfaceClass Products.CMFCore.interfaces._content.IMutableMinimalDublinCore>, <InterfaceClass plone.app.dexterity.behaviors.filename.INameFromFileName>, <InterfaceClass plone.app.content.interfaces.INameFromTitle>, <InterfaceClass App.interfaces.INavigation>, <SchemaClass plone.app.dexterity.behaviors.nextprevious.INextPreviousToggle>, <InterfaceClass OFS.interfaces.IObjectManager>] 

Cette classe Products.GroupSpace.interfaces.IGroupSpace n'existera plus. Je veux juste enlever ça. "ob" est une instance de BTrees.OOBTree.OOBucket mais c'est tout ce que je sais - même si je suis presque certain que c'est dans les PersistentComponents du portail, c'est encore plutôt vague.

Répondre