Thanks, this helps some to narrow it down. Trying to zoom in:
- why would sqla try to UPDATE (instead of INSERT) a row in the database, when the row/object was never committed before? - when you flush an object to the database and then close the session that flushed (no commit), what happens to the flushed data? - if an object is in a session and it has_identity, why would accessing obj.id (id is the primary key) fail (see above)? - Is there (in principle) a problem with: + having an object of a mapped class which was never committed (but maybe was added to a session and flushed, after which the session was closed) + setting an attribute of that object with another object that was queried from the database + committing the first object to the database? Cheers, Lars On Saturday, February 1, 2014 3:42:09 AM UTC+1, Michael Bayer wrote: > > > On Jan 31, 2014, at 8:11 PM, lars van gemerden > <la...@rational-it.com<javascript:>> > wrote: > > > "this means an object was meant to be UPDATEed via the ORM, however the > row which is the target of the UPDATE is missing. Either the primary key > of this row changed somehow, or the row was deleted, *or* the row is not > visible to your transaction (this seems to be your case)." > > - could the error also occur when the object was never committed to the > database (which seems to be the case; the commit where the error occurs > should be the first time the Company object is committed to the database)? > > > sure > > - this seems to suggest that it is possible that a row is in the > database, but that it is not visible to a transaction; is that possible? > > > absolutely, the link http://en.wikipedia.org/wiki/Transaction_isolation is > relevant here > > > -- 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. For more options, visit https://groups.google.com/groups/opt_out.