On Dec 2, 2009, at 5:46 PM, Dave Paola wrote:

> I'm getting this: ConcurrentModificationError: updated rowcount 0 does not 
> match number of objects updated 1 when I try to commit a simple deletion.  
> I'm using Sqlite locally but the error also occurs on a Postgres database in 
> a live environment with only ONE user connected.
> 
> I saw this post from Nov. 11th: 
> http://groups.google.com/group/sqlalchemy/browse_thread/thread/e7175c7351963128
>  but because I'm not doing any copying (just deletion), it didn't seem to 
> provide anything useful.  Both session.dirty and session.new are empty.
> 
> I have a Task class mapped to an association table called TaskTag that has a 
> task_id and tag_id.  I'm literally doing a session.delete(task) followed by a 
> session.commit() and session.close().  Here's my mapper:
> 
> mapper(Task, tasks_table, properties = {
>                 'tags' :  relation(Tag, secondary=tasktags_table, lazy = 
> False)
> })
> 
> I suspect this has something to do with the many-to-many relationship, but 
> for the life of me I cannot figure out what's going on.  Thanks in advance.

this can happen if you have tasktags_table explicitly mapped elsewhere.    the 
mapper for tasktags_table will issue a DELETE, and then if Task.tags is also 
modified in some way that affects the same row, the DELETE issued corresponding 
to the relation() will not find its row.    In that case the "Concurrent" name 
is referring to two different configurations within a single flush conflicting 
with each other.  If this is your issue, strategies to address include placing 
viewonly=True on the relation() or using the association proxy pattern (you can 
even use both if you want to pick and choose how the SQL to load records is 
emitted).

> P.S. I use SqlAlchemy so often, I love the framework.  Thanks to everyone for 
> your hard work, it's greatly appreciated :-)

The compliments are appreciated !



> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@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.

--

You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.


Reply via email to