Cool - Thanks. Upgrade on the way.. :-) Cheers Warwick
> specifically it occurs when you receive an exception on flush(), but then you > keep doing things that change the state of the session before calling > rollback(). here's the original test: > > http://www.sqlalchemy.org/trac/attachment/ticket/2389/sqlalchemy_rollback_bug.py > > > > On Mar 17, 2013, at 1:38 AM, Warwick Prince <warwi...@mushroomsys.com> wrote: > >> Hi Michael >> >> I have some fairly basic code which is moving data from one DB to another. >> I have trapped errors on inserts just in case there were unexpected >> duplicates. When I go to commit this transaction, MySQL correctly throws an >> IntegrityError exception: Duplicate Entry which I trap, and perform a >> rollback. However, the rollback ALSO receives an IntegrityError exception >> from MySQL for the same insert query?? >> >> >> File "C:\Documents and Settings\wprince\Desktop\PY CODE >> DEVELOPMENT\CESyncSQL\Sync_AU.py", line 1868, in SYNC_CustomersOUT >> session.rollback() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 586, >> in rollback >> self.transaction.rollback() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 324, >> in rollback >> self.close() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 351, >> in close >> self.session.begin() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 557, >> in begin >> self, nested=nested) >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 137, >> in __init__ >> self._take_snapshot() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 197, >> in _take_snapshot >> self.session.flush() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 1473, >> in flush >> self._flush(objects) >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\session.py", line 1542, >> in _flush >> flush_context.execute() >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\unitofwork.py", line >> 327, in execute >> rec.execute(self) >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\unitofwork.py", line >> 471, in execute >> uow >> File "C:\Python27\lib\site-packages\sqlalchemy\orm\mapper.py", line 2163, >> in _save_obj >> execute(statement, params) >> File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 1358, >> in execute >> params) >> File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 1491, >> in _execute_clauseelement >> compiled_sql, distilled_params >> File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 1599, >> in _execute_context >> context) >> File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 1592, >> in _execute_context >> context) >> File "C:\Python27\lib\site-packages\sqlalchemy\engine\default.py", line >> 325, in do_execute >> cursor.execute(statement, parameters) >> File "C:\Python27\lib\site-packages\mysql\connector\cursor.py", line 309, >> in execute >> res = self.db().protocol.cmd_query(stmt) >> File "C:\Python27\lib\site-packages\mysql\connector\protocol.py", line >> 136, in deco >> return func(*args, **kwargs) >> File "C:\Python27\lib\site-packages\mysql\connector\protocol.py", line >> 474, in cmd_query >> return self.handle_cmd_result(self._recv_packet()) >> File "C:\Python27\lib\site-packages\mysql\connector\protocol.py", line >> 173, in _recv_packet >> MySQLProtocol.raise_error(buf) >> File "C:\Python27\lib\site-packages\mysql\connector\protocol.py", line >> 167, in raise_error >> raise errors.get_mysql_exception(errno,errmsg) >> IntegrityError: (IntegrityError) 1062: Duplicate entry '1231-63565' for key >> 'userID' u'INSERT INTO customer_master bla.. >> >> Any ideas? This is 0.7.1 >> >> Cheers >> Warwick >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at http://groups.google.com/group/sqlalchemy?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy?hl=en. For more options, visit https://groups.google.com/groups/opt_out.