Python

SQLAlchemy: Difference between Flush and Commit

In simple terms:

  • Similarity: after both flush and commit, later queries will be able to retrieve these changes.
  • Difference: flush() changes are in a pending state (no db statements are issued yet), and can be undone by rollback(); commits are persisted to db and non-reversible.

Why use flush:

  • To have atomicity–making sure that a group of transactions either all succeed or all fail.

Standard