Okay never mind, the behaviour I observed was due to me loading the objects from cache again *after* having changed their attributes - I think. I shall post again if I have to revisit this :)
On Wednesday, February 1, 2017 at 12:01:58 PM UTC+1, Denis Krienbühl wrote: > > Hi > > I'm trying to add a somewhat transparent cache to certain SQLAlchemy > objects in my application. Not a general query cache, just a cache for > often used objects with a Memcached backend. > > This is all working just as expected with one caveat. After loading an > object from the cache I merge it back into the session using > session.merge(obj, load=False). If I try to make changes to this object > through its attributes I noticed that I never see a flush. That is, for > merged objects I need to call flush explicitly. Otherwise zope.sqlalchemy > which I use in conjunction with SQLAlchemy won't commit the transaction as > it uses a flush event to determine if a transaction has anything to commit. > > What I find interesting is that objects changed after session.merge(obj, > load=*True*) will result in an automatic flush. I'm wondering now if this > is intentional and why that would be. I looked through the docs but I can't > find anything that explains this behaviour. > > Also, if there is some specific reason for this I would be interested to > find out if I can somehow distinguish objects loaded through load=False > from objects loaded through load=True. I've used sqlalchemy.inspect in this > regard to no avail. > > Thanks for your input. > > Denis > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
