2016-11-23 52 views
0

我用的燒瓶SQLAlchemy的,我只是將其配置爲不自動清空像這樣瓶的SQLAlchemy後禁用自動沖洗和自動提交不工作

db = SQLAlchemy(session_options={"autoflush": False, "autocommit": False}) 

沒有自動提交,但它僅適用於第一次會議工作

user = User() 
user.name = "John" 
db.session.add(User) #No data insert to DB yet 
db.session.commit() #user name john inserted 

但之後

fruit = Fruit() 
fruit.name = "Banana" 
db.session.add(fruit) # <-- this data auto insert into sqlite DB without commit/flush 

任何想法,爲什麼我從來不叫session.commit()/沖洗()水果實例已經做了插入工作?自動推倒提交已設置爲False太

回答

1

你必須在這裏添加此選項expire_on_commit=False

session_options={"autoflush": False, "autocommit": False, "expire_on_commit": False} 

退房:autocommit mode

+0

找到了原因,是因爲我的其他藍圖頁面調用分貝。 session.commit(),因此Fruit實例實際上是從其他頁面提交的。任何地方感謝回答:) – Tyler