[Zope] Re: Upgrade woes: BTreeFolder --> BTreeFolder2

Laurence Rowe l at lrowe.co.uk
Sun May 6 10:03:36 EDT 2007


Well, you're replicating what was going on in the browser, so you got 
the same results. Instead try:

 >>> del app.OrgDocumentLibrary['Documents']

You'll need to do a transaction.get().commit() to persist the changes.

Note that by doing it this way you're catalogues won't get notified of 
the deleted objects. (Use the update button to rebuild them).

Laurence

Ken Ara wrote:
> Also unable to delete using zopectl debug, but is
> there an additional clue at the end of this traceback?
> :
> 
> app.OrgDocumentLibrary.manage_delObjects(['Documents'])
> 2007-05-05 07:37:17 WARNING OFS.Uninstalled Could not
> import class 'BTree' from module 'BTree'
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File
> "/usr/local/zope/lib/python/OFS/ObjectManager.py",
> line 524, in manage_delObjects
>     self._delObject(id)
>   File
> "/usr/local/zope/lib/python/OFS/ObjectManager.py",
> line 379, in _delObject
>     notify(ObjectWillBeRemovedEvent(ob, self, id))
>   File
> "/usr/local/zope/lib/python/zope/event/__init__.py",
> line 23, in notify
>     subscriber(event)
>   File
> "/usr/local/zope/lib/python/zope/component/event.py",
> line 26, in dispatch
>     for ignored in zope.component.subscribers(event,
> None):
>   File
> "/usr/local/zope/lib/python/zope/component/_api.py",
> line 130, in subscribers
>     return sitemanager.subscribers(objects, interface)
>   File
> "/usr/local/zope/lib/python/zope/component/registry.py",
> line 290, in subscribers
>     return self.adapters.subscribers(objects,
> provided)
>   File
> "/usr/local/zope/lib/python/zope/interface/adapter.py",
> line 535, in subscribers
>     subscription(*objects)
>   File
> "/usr/local/zope/lib/python/zope/component/event.py",
> line 33, in objectEventNotify
>     adapters =
> zope.component.subscribers((event.object, event),
> None)
>   File
> "/usr/local/zope/lib/python/zope/component/_api.py",
> line 130, in subscribers
>     return sitemanager.subscribers(objects, interface)
>   File
> "/usr/local/zope/lib/python/zope/component/registry.py",
> line 290, in subscribers
>     return self.adapters.subscribers(objects,
> provided)
>   File
> "/usr/local/zope/lib/python/zope/interface/adapter.py",
> line 535, in subscribers
>     subscription(*objects)
>   File
> "/usr/local/zope/lib/python/OFS/subscribers.py", line
> 108, in dispatchObjectWillBeMovedEvent
>     dispatchToSublocations(ob, event)
>   File
> "/usr/local/zope/lib/python/zope/app/container/contained.py",
> line 181, in dispatchToSublocations
>     for sub in subs.sublocations():
>   File
> "/usr/local/zope/lib/python/OFS/subscribers.py", line
> 88, in sublocations
>     for ob in self.container.objectValues():
>   File
> "/usr/local/zope/lib/python/Products/BTreeFolder2/BTreeFolder2.py",
> line 368, in objectValues
>     return LazyMap(self._getOb, self.objectIds(spec))
>   File
> "/usr/local/zope/lib/python/Products/BTreeFolder2/BTreeFolder2.py",
> line 347, in objectIds
>     spec = mti.keys() #all meta types
> AttributeError: 'NoneType' object has no attribute
> 'keys'
> 
> Is the problem with the contained objects? 
> Here's what happens when I try to list them:
> 
>>>> for o in
> app.OrgDocumentLibrary.Documents.objectIds():
> ...   print o
> ...
> 2007-05-05 07:47:08 WARNING OFS.Uninstalled Could not
> import class 'BTree' from module 'BTree'
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File
> "/usr/local/zope/lib/python/Products/BTreeFolder2/BTreeFolder2.py",
> line 347, in objectIds
>     spec = mti.keys() #all meta types
> AttributeError: 'NoneType' object has no attribute
> 'keys'
> 
> Thanks 
> -Ken
> 
> --- Laurence Rowe wrote:
>> Try deleting them with del from python (eg from
> zopectl debug) rather 
>> than through the ZMI.
>>
>> Laurence
>>
>> Ken Ara wrote:
>>> I have a couple of outstanding issues following an
>>> otherwise successful upgrade from Zope 2.7.4 to
>>> 2.10.3-final.
>>>
>>> One key application used the old DocumentLibrary
>>> product
>>>
> (http://www.zope.org/Members/Kaivo/DocumentLibrary). I
>>> have since reimplemented most of the functionality
> and
>>> migrated out the content, but I am unable to
> delete
>>> the old instances of the 'DocumentStore' class.
> This
>>> class is based on the old BTreeFolder which, as
> far as
>>> I can tell, cannot be be used in current versions
> of
>>> Zope. 
>>>
>>> Starting Zope with the old BTreeFolder fails:
>>>
>>> Traceback (most recent call last):
>>>   File
>>> "/usr/local/zope/lib/python/OFS/Application.py",
> line
>>> 703, in import_product
>>>     product=__import__(pname, global_dict,
>>> global_dict, silly)
>>>   File
>>>
> "/usr/local/zope/client0/Products/BTreeFolder/__init__.py",
>>> line 89, in ?
>>>     import BTreeFolder
>>>   File
>>>
> "/usr/local/zope/client0/Products/BTreeFolder/BTreeFolder.py",
>>> line 91, in ?
>>>     from BTree import BTree
>>> ImportError: No module named BTree
>>>
>>> Swapping in BTreeFolder2 allowed me to access
> existing
>>> instances of DocumentLibrary, however attempting
> to
>>> delete the old instances of DocumentStore fails
> with
>>> the following error:
>>>
>>> Traceback (innermost last):
>>>   Module ZPublisher.Publish, line 119, in publish
>>>   Module ZPublisher.mapply, line 88, in mapply
>>>   Module ZPublisher.Publish, line 42, in
> call_object
>>>   Module OFS.ObjectManager, line 524, in
>>> manage_delObjects
>>>   Module OFS.ObjectManager, line 379, in
> _delObject
>>>   Module zope.event, line 23, in notify
>>>   Module zope.component.event, line 26, in
> dispatch
>>>   Module zope.component._api, line 130, in
> subscribers
>>>   Module zope.component.registry, line 290, in
>>> subscribers
>>>   Module zope.interface.adapter, line 535, in
>>> subscribers
>>>   Module zope.component.event, line 33, in
>>> objectEventNotify
>>>   Module zope.component._api, line 130, in
> subscribers
>>>   Module zope.component.registry, line 290, in
>>> subscribers
>>>   Module zope.interface.adapter, line 535, in
>>> subscribers
>>>   Module OFS.subscribers, line 108, in
>>> dispatchObjectWillBeMovedEvent
>>>   Module zope.app.container.contained, line 181,
> in
>>> dispatchToSublocations
>>>   Module OFS.subscribers, line 88, in sublocations
>>>   Module Products.BTreeFolder2.BTreeFolder2, line
> 368,
>>> in objectValues
>>>   Module Products.BTreeFolder2.BTreeFolder2, line
> 347,
>>> in objectIds
>>> AttributeError: 'NoneType' object has no attribute
>>> 'keys'
>>>
>>> If I could install the original BTreeFolder in
> Zope
>>> 2.10.3 - if only briefly - would that enable me to
>>> delete the old instances? Other ideas?
>>>
>>> Thanks,
>>> Ken
>>>
>>> __________________________________________________
>>> Do You Yahoo!?
>>> Tired of spam?  Yahoo! Mail has the best spam
> protection around 
>>> http://mail.yahoo.com 
>>> _______________________________________________
>>> Zope maillist  -  Zope at ...
>>> http://mail.zope.org/mailman/listinfo/zope
>>> **   No cross posts or HTML encoding!  **
>>> (Related lists - 
>>>
> http://mail.zope.org/mailman/listinfo/zope-announce
>>>  http://mail.zope.org/mailman/listinfo/zope-dev )
>>>
>> _______________________________________________
>> Zope maillist  -  Zope at ...
>> http://mail.zope.org/mailman/listinfo/zope
>> **   No cross posts or HTML encoding!  **
>> (Related lists - 
>>  http://mail.zope.org/mailman/listinfo/zope-announce
>>  http://mail.zope.org/mailman/listinfo/zope-dev )
>>
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
> 



More information about the Zope mailing list