On Jun 1, 2010, at 1:14 AM, David wrote: > Thanks for the response, Michael. Sorry, I forgot to mention how we > are committing the data. Here is a skinned-down version of the code > that returns "old" data when switching between web servers. > > engine = sqlalchemy.create_engine(ALCHEMY_DATABASE) > Session = sqlalchemy.orm.sessionmaker(bind=engine) > session = Session() > session.expire_all() > > user_query = session.query(User) > user_data = user.get('USERID') > #session.refresh(user_data) <--- this seems to fix the problem > > try: > user_data.var = user_data.var + 1 > session.add(user_data) > session.commit() > except: > session.rollback() > > > class User(Base): > > __table__ = Table('user', Base.metadata, > Column('user_id', String(10), primary_key=True), > Column('var', Integer, default=0, server_default='0'), > mysql_engine='InnoDB' > ) > > > Interestingly enough, adding "session.refresh(user_data)" right after > the "get" seems to be fixing the problem. But I'm confused, since I > thought "session.expire_all()" should have the same effect. I don't > want to add a "refresh" after every get in our code, since I'm afraid > it might require multiple calls to the database.
the expire_all has the same effect, yes. You'd need to reproduce your behavior in an isolated test case to illustrate what you're doing. For example I see a "user.get()" up there, would need to know what that is, etc. -- 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.