that's your flush() process flushing something pending in the
session. say session.flush() to see it happen. the error means
you've removed a child object from a parent, which would result in a
primary key that is also a foreign key being nulled out.
On Feb 5, 2009, at 8:51 PM, Gloria W wrote:
>
> OK, a new problem on the same model:
>
> I try this in my unit test:
>
> memberProfile = self.session.query(MemberProfile).filter
> (MemberProfile.memberID.in_(memberid)).order_by
> (MemberProfile.memberID).filter(MemberProfile.city == 'Jamaica').all()
>
> and I get this error:
>
> Traceback (most recent call last):
> File "MemberInfo.py", line 187, in ?
> print jsonize(x.GET(memberid=81087,fields={'city':'brooklyn',
> 'phonehome': '3473653052'}).data)
> File "MemberInfo.py", line 70, in GET
> memberProfile = memberProfile.order_by(MemberProfile.memberID).all
> ()
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/query.py", line 998, in all
> return list(self)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/query.py", line 1087, in __iter__
> self.session._autoflush()
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/session.py", line 912, in _autoflush
> self.flush()
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/session.py", line 1354, in flush
> self._flush(objects)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/session.py", line 1424, in _flush
> flush_context.execute()
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 260, in execute
> UOWExecutor().execute(self, tasks)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 723, in execute
> self.execute_save_steps(trans, task)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 740, in execute_save_steps
> self.execute_dependencies(trans, task)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 749, in execute_dependencies
> self.execute_dependency(trans, dep, False)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 735, in execute_dependency
> dep.execute(trans, isdelete)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/unitofwork.py", line 702, in execute
> delete=delete)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/dependency.py", line 332, in process_dependencies
> self._synchronize(state, child, None, False, uowcommit)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/dependency.py", line 375, in _synchronize
> sync.clear(state, self.parent, self.prop.synchronize_pairs)
> File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/sync.py", line 28, in clear
> raise AssertionError("Dependency rule tried to blank-out primary
> key column '%s' on instance '%s'" % (r, mapperutil.state_str(dest)))
> AssertionError: Dependency rule tried to blank-out primary key column
> 'member_profiles.memberID' on instance '<MemberProfile at
> 0x-488616d4>'
>
>
> which seems to happen on any filter() option I use. Things work fine
> without the filter() option.
>
> Thanks again!
> Gloria
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---