2016-11-23 1 views
0

I Flask-sqlalchemy verwende ich so konfiguriere, dass nur für keine automatische Spülung und ohne autocommit wie dieseFlask sqlalchemy nach disable Autoflushing und autocommit nicht funktioniert

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

Aber es funktioniert nur für die erste Sitzung

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

aber danach

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

Jede Idee, warum ich nie nennen session.commit()/flush() die Frucht Instanz Schon der Insertionsjob? Die Auto-Down-commit Riss bereits auf False zu

Antwort

1

Sie haben diese Option aus expire_on_commit=False

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

prüfen hinzuzufügen: autocommit mode

+0

herausgefunden, warum, ist, weil meine anderen Plan Seite der db aufrufen. session.commit(), so dass die Fruit-Instanz tatsächlich von einer anderen Seite übernommen wird. Irgendwo danke für die Antwort:) – Tyler