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