MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存
Posted
技术标签:
【中文标题】MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存【英文标题】:MySQL data is caching with google cloud SQL and SQLAlchemy 【发布时间】:2019-08-28 07:41:08 【问题描述】:这是我关于***的第一个问题,所以如果我做错了什么请纠正我:)。
我在 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]
【问题讨论】:
嗨@Emma。感谢您的答复!我刚刚用更多代码信息编辑了我的帖子并添加了您建议的标签。 【参考方案1】:我找到了答案!
通过在进行查询之前执行db.session.commit()
,它会刷新它的缓存。
我的代码现在看起来像这样:
db.session.commit()
jokes = Jokes.query.all()
randint = random.randint(0, len(jokes) - 1)
joke = jokes[randint]
【讨论】:
以上是关于MySQL 数据使用谷歌云 SQL 和 SQLAlchemy 进行缓存的主要内容,如果未能解决你的问题,请参考以下文章