rendered paste bodyIn [1]: p = People.by_username('mmcgrath')
In [2]: p.emails['primary'].email
Out[2]: 'mmcgrath@redhat.com'
In [3]: p.emails['primary'].email = 'toshio@redhat.com'
In [4]: session.flush()
---------------------------------------------------------------------------
FlushError Traceback (most recent call last)
/home/mmcgrath/git/fedora-infrastructure/fas/<ipython console> in <module>()
/usr/lib/python2.5/site-packages/sqlalchemy/orm/scoping.py in do(self, *args, **kwargs)
72 def instrument(name):
73 def do(self, *args, **kwargs):
---> 74 return getattr(self.registry(), name)(*args, **kwargs)
75 return do
76 for meth in ('get', 'load', 'close', 'save', 'commit', 'update', 'save_or_update', 'flush', 'query', 'delete', 'merge', 'clear', 'refresh', 'expire', 'expunge', 'rollback', 'begin', 'begin_nested', 'connection', 'execute', 'scalar', 'get_bind', 'is_modified', '__contains__', '__iter__'):
/usr/lib/python2.5/site-packages/sqlalchemy/orm/session.py in flush(self, objects)
681 """
682
--> 683 self.uow.flush(self, objects)
684
685 def get(self, class_, ident, **kwargs):
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in flush(self, session, objects)
207 flush_context.transaction = session.transaction
208 try:
--> 209 flush_context.execute()
210
211 if session.extension is not None:
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute(self)
434 self.logger.info("Task dump:\n" + head.dump())
435 if head is not None:
--> 436 UOWExecutor().execute(self, head)
437 if self._should_log_info:
438 self.logger.info("Execute Complete")
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute(self, trans, task, isdelete)
1053 def execute(self, trans, task, isdelete=None):
1054 if isdelete is not True:
-> 1055 self.execute_save_steps(trans, task)
1056 if isdelete is not False:
1057 self.execute_delete_steps(trans, task)
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute_save_steps(self, trans, task)
1072 self.execute_dependencies(trans, task, False)
1073 self.execute_dependencies(trans, task, True)
-> 1074 self.execute_childtasks(trans, task, False)
1075
1076 def execute_delete_steps(self, trans, task):
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute_childtasks(self, trans, task, isdelete)
1090 def execute_childtasks(self, trans, task, isdelete=None):
1091 for child in task.polymorphic_childtasks:
-> 1092 self.execute(trans, child, isdelete)
1093
1094 def execute_cyclical_dependencies(self, trans, task, isdelete):
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute(self, trans, task, isdelete)
1053 def execute(self, trans, task, isdelete=None):
1054 if isdelete is not True:
-> 1055 self.execute_save_steps(trans, task)
1056 if isdelete is not False:
1057 self.execute_delete_steps(trans, task)
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in execute_save_steps(self, trans, task)
1067
1068 def execute_save_steps(self, trans, task):
-> 1069 self.save_objects(trans, task)
1070 self.execute_cyclical_dependencies(trans, task, False)
1071 self.execute_per_element_childtasks(trans, task, False)
/usr/lib/python2.5/site-packages/sqlalchemy/orm/unitofwork.py in save_objects(self, trans, task)
1058
1059 def save_objects(self, trans, task):
-> 1060 task.mapper.save_obj(task.polymorphic_tosave_objects, trans)
1061
1062 def delete_objects(self, trans, task):
/usr/lib/python2.5/site-packages/sqlalchemy/orm/mapper.py in save_obj(self, objects, uowtransaction, postupdate, post_update_cols, single)
988 if has_identity(obj):
989 if obj._instance_key != instance_key:
--> 990 raise exceptions.FlushError("Can't change the identity of instance %s in session (existing identity: %s; new identity: %s)" % (mapperutil.instance_str(obj), obj._instance_key, instance_key))
991
992 inserted_objects = util.Set()
FlushError: Can't change the identity of instance PersonEmails@0xa5ba62c in session (existing identity: (<class 'fas.model.PersonEmails'>, (1128, 'mmcgrath'), None); new identity: (<class 'fas.model.PersonEmails'>, (1128, 'toshio'), None))