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 sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---