Когда мне следует вызывать flush () для SQLAlchemy?
Я новичок в SQLAlchemy и унаследовал несколько грязную кодовую базу без доступа к первоначальному автору.
Код написан с вызовамиDBSession.flush()
По-видимому, каждый раз, когда автор хотел убедиться, что данные сохраняются. Сначала я просто следовал шаблонам, которые видел в этом коде, но по мере того, какЯ читаю документы, кажется, что в этом нет необходимости - автозапуск должен быть на месте. Кроме того, яЯ попал в несколько случаев с вызовами AJAX, которые генерируют ошибку "InvalidRequestError: Сессия уже сбрасывается ".
При каких сценариях я законно хотел бы оставить вызов flush ()?
Это приложение Pyramid, и SQLAlchemy настраивается с помощью:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension(), expire_on_commit=False))
Base = declarative_base()