sqlalchemy:会话提交错误 - 'SessionMaker'对象没有属性'_model_changes'

时间:2012-09-17 15:38:29

标签: sqlalchemy flask flask-sqlalchemy

我是SqlAlchemy的新手。我们主要使用Flask,但在特定情况下我需要手动数据库连接。所以我用这样的东西启动了一个新的数据库连接:

write_engine = create_engine("mysql://user:pass@localhost/db?charset=utf8")
write_session = scoped_session(sessionmaker(autocommit=False,
    autoflush=False,bind=write_engine))

nlabel = write_session.query(Label).filter(Label.id==label.id).first() # Works
#Later in code
ms = Message("Some message")
write_session.add(ms) # Works fine
write_session.commit() # Errors out

错误看起来像“AttributeError:'SessionMaker'对象没有属性'_model_changes'”

我做错了什么?

2 个答案:

答案 0 :(得分:2)

the documentation我认为您可能错过了Session对象的初始化。

尝试:

Session = scoped_session(sessionmaker(autocommit=False, autoflush=False,bind=write_engine))
write_session = Session()

这是一个黑暗中的镜头 - 我对SQLAlchemy并不熟悉。祝你好运!

答案 1 :(得分:2)

您的问题是您错过了这一行:

db_session._model_changes = {}