2016-11-23 5 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

関連する問題