首页 > 解决方案 > MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存

问题描述

这是我关于stackoverflow的第一个问题,所以如果我做错了什么,请纠正我:)。

我在 Google Cloud SQL 上托管的数据库中的数据正在使用 Flask-SQLAlchemy 进行缓存。当我添加新记录并尝试获取该记录时,它不存在。

我正在使用一个添加记录的脚本,我使用一个来获取记录。

我首先用 SQLite 进行了尝试,效果很好。但在 Google Cloud SQL 中使用 MySQL 时却没有。

每次我向我使用的数据库添加/更改某些内容时db.session.commit()

我使用 pymysql 模块:pymysql.install_as_MySQLdb() 我的连接 URI 如下所示:mysql://...

编辑:这是我用来添加新记录的(我的脚本是用来添加笑话的):

new_joke = Jokes(joke, user["username"], user["id"], avatar_url, "0")
db.session.add(new_joke)
db.session.commit()

这就是我用来获取记录的(随机):

jokes = Jokes.query.all()
randint = random.randint(0, len(jokes) - 1)
joke = jokes[randint]

标签: pythongoogle-cloud-platformflask-sqlalchemymysql-pythonpymysql

解决方案


我找到了答案!

通过在进行db.session.commit()查询之前执行,它会刷新它的缓存。

我的代码现在看起来像这样:

db.session.commit()
jokes = Jokes.query.all()
randint = random.randint(0, len(jokes) - 1)
joke = jokes[randint]

推荐阅读