SQLAlchemy插入未反映在远程数据库中

时间:2019-01-31 14:55:36

标签: python sqlalchemy

我正在尝试将记录插入远程数据库的mysql表中。 python可以工作(没有错误),但是我的所有插入内容都不反映在远程数据库上。看起来SQLAlchemy维护着一个缓存并正在更新它,但没有推送它。我什至将表放在服务器上,SQLAlchemy仍然认为该表存在。

我没有使用Session或以其他方式提交事务,尽管当我回显语句时,似乎正在进行提交。

SQLAlchemy是否维护某种缓存?

from sqlalchemy import MetaData
from sqlalchemy import Table
from sqlalchemy import create_engine

db_engine2 = create_engine('mysql+mysqldb://user:pass@host/product_analytics', echo=True)
meta = MetaData(db_engine2)

xlations_topic_update_status = Table('product_analytics.xlations_topic_update_status', meta, autoload=True)
xlations_topic_update_status.insert().execute({'topic_name':'test','topic_id':'test2'}, autocommit=True)

print(xlations_topic_update_status.select().execute().fetchall())

以下是我在服务器上删除表后甚至在 下看到的内容: enter image description here

1 个答案:

答案 0 :(得分:1)

想通了...

Table('product_analytics.xlations_topic_update_status', meta, autoload=True)在product_analytics数据库中静默创建了一个名为“ product_analytics.xlations_topic_update_status”的表。代替使用“ xlations_topic_update_status”表

经验教训:不包括数据库名称。