Sqlalchemy返回"陈旧"行?

Pro*_*ica 5 python mysql sqlalchemy

我有一个表(MySQL),其中有一行.

我可以读得很好:

self._session.query(Automatic).\
             filter(Automatic.do_when <= time()).\
             limit(limit).\
             all()
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后从表中删除行(使用mysql客户端或phpMyAdmin),则上面的代码仍会返回该行.我不知道这是否与" 如何禁用SQLAlchemy缓存? " 这个问题有关.

编辑:添加

self._session.commit()
Run Code Online (Sandbox Code Playgroud)

之后没有任何区别.

Pro*_*ica 11

编辑:根据eggyal的解释,在阅读之前添加commit()就可以了.

self._session.commit()
self._session.query(Automatic).\
             filter(Automatic.do_when <= time()).\
             limit(limit).\
             all()
Run Code Online (Sandbox Code Playgroud)

  • 非常适合我! (2认同)
  • 这对我也有用,虽然我不知道我是应该高兴还是哭泣. (2认同)
  • 工作了!确实需要这样做……我将我的数据库从 postgres 迁移到 mysql 并遇到了这个问题。以前在 postgres 中你不需要这样做...... (2认同)