[Setup] Re: Migration problem: 'Import Error: No module named Validators'

André Knörig ak at ak-rocks.de
Mon Dec 19 15:10:36 UTC 2005


Thanks for the hint. Whew.. I got PloneShell running and it's fun indeed. I 
don't have any experience in using such a nice tool, but I managed to find out 
what's causing the trouble:

Several instances of my derived ATContentTypes objects in the root throw the 
error when a function on them is called. A call of __dict__ reveals that they 
dont't contain anything. It just returns {}.
Now, this only happened with some instances. Others, of the same type, are 
completely fine, both in the root and deeper in the site. It seems that the ones 
that are broken are the older ones.
So, this means that they got mangled as soon as I opened the Data.fs with the 
new Products installed, right?

So I deleted these objects on the old setup and then tried to run it with the 
new setup again. Worked! No more Import Errors!! The migration worked, too. But 
now, of course, there are a lot of other problems to address, because my Plone 
is somewhat heavily customized ;)

Thanks a lot for your help!

andré>

alan at enfoldsystems.com wrote:
> so i diagnosed an error like this recently with regards to exif in ATPhoto
> or ATImage or whatever.  Its rather difficult - if not impossible to debug
> this w/o zopectl.  I would download the PloneShell from enfoldsystems.com
> website.
> 
> I would read over the 'conversing with zope' article.  basically what you
> can do is use post-mortem debugging.  zope will throw exception; you get a
> python debugger:
> 
>   - then you step up the call stack finding where you actually ahve your
> 'broken' object orthe object that is causign the problem.
> 
>   - poke the object and see what has a reference to Validators
> 
> I would *imagine* your problem is something like you have a persistent
> Validator in your databse; and validators shouldnt be persistent.  It
> would be nice to have objects in ZOpe that not possible to persist ;-)
> like
> 
> class Validator:
>   _p_never_persist = True
> 
> this would tell the zodb that its impossible to persist a instance of this
> type.  and would throw a runtime error in zodb.  but this isnt the zodb
> list ;-)
> 
> I would imagine its something in your own code base if you have written
> anotehr product.
> 
> alan




More information about the Setup mailing list