자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)


문제 설명

자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)

저는 Flask‑sqlalchemy를 사용하고 있습니다. 이렇게 자동 플러시 및 자동 커밋이 없도록 구성했습니다.

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

하지만 첫 번째 세션에서만 작동합니다.

6
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()/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

(by Tylermetmirr)

참조 문서

  1. Flask sqlAlchemy after disable autoflush and autocommit not working (CC BY‑SA 2.5/3.0/4.0)

#SQLAlchemy #Flask #flask-sqlalchemy






관련 질문

타임스탬프 열에서 연도만 검색하는 방법은 무엇입니까? (How to retrieve only the year from timestamp column?)

SQLAlchemy: 'in_'에 대한 필터는 효과가 없습니다. (SQLAlchemy: Filter on 'in_' has no effect)

sqlalchemy 쿼리 필터에 변수를 추가하고 문자열 쿼리로 변환하려면 어떻게 합니까? (How do I add a variable to a sqlalchemy query filter and convert it to a string query?)

자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)

R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)

sqlalchemy.exc.OperationalError 식별 (Identifying sqlalchemy.exc.OperationalError)

ImportError: 'PY2' 이름을 가져올 수 없습니다. (ImportError: cannot import name 'PY2')

SQLAlchemy: 부분적으로 지정된 관계 (SQLAlchemy: partially specified relationship)

SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)

날짜 시간에 대한 ValidationError (ValidationError for datetime)

pytest에서 SAWarning을 무시하는 방법 (How to ignore SAWarning in pytest)







코멘트