[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