문제 설명
자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)
저는 Flask‑sqlalchemy를 사용하고 있습니다. 이렇게 자동 플러시 및 자동 커밋이 없도록 구성했습니다.
db = SQLAlchemy(session_options={"autoflush": False, "autocommit": False})
하지만 첫 번째 세션에서만 작동합니다.
6user = 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()/flush()를 호출하지 않는 이유는 무엇입니까? 과일 인스턴스가 이미 삽입 작업을 수행했습니다. Auto Tear Down 커밋도 이미 False로 설정되어 있습니다.
참조 솔루션
방법 1:
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