Tyler
Tyler

Reputation: 674

Flask sqlAlchemy after disable autoflush and autocommit not working

I am using Flask-sqlalchemy, I just configure it for no auto flush and no autocommit like this

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

But it only work for first session

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

but after that

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

Any idea why i never call session.commit()/flush() the fruit instance already did the insert job ? The Auto Tear Down commit already set to False too

Upvotes: 2

Views: 2643

Answers (1)

metmirr
metmirr

Reputation: 4302

You have to add this option expire_on_commit=False

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

Check out here: autocommit mode

Upvotes: 4

Related Questions