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