Kiedy powinienem wywoływać flush () na SQLAlchemy?

Jestem nowym użytkownikiem SQLAlchemy i odziedziczyłem trochę bałaganu bez dostępu do oryginalnego autora.

Kod jest liteowany za pomocą wywołańDBSession.flush(), pozornie za każdym razem, gdy autor chciał upewnić się, że dane są zapisywane. Na początku po prostu obserwowałem wzorce, które widziałem w tym kodzie, ale jak czytam dokumenty, wydaje się, że nie jest to konieczne - że autoflushing powinien być na miejscu. Dodatkowo dostałem kilka przypadków wywołania AJAX, które generują błąd „InvalidRequestError: Session is flushing”.

W jakich scenariuszach słusznie chciałbym utrzymywać połączenie do opróżnienia ()?

To jest aplikacja Pyramid, a SQLAlchemy jest konfigurowane z:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension(), expire_on_commit=False))
Base = declarative_base()

questionAnswers(1)

yourAnswerToTheQuestion