diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-03-26 17:26:57 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2020-03-26 17:26:57 -0400 |
| commit | ee1e1e2f5540a6e32986b1041db4dfd55894e68b (patch) | |
| tree | 1c86cde57aef8603d12ca3935fa43cd042f99b11 | |
| parent | 2d4171ec8c85a468bdbdcf55e8d053b1586747ff (diff) | |
| download | sqlalchemy-ee1e1e2f5540a6e32986b1041db4dfd55894e68b.tar.gz | |
introduce "autobegin" concept for Connection
because engine.connect() and engine.begin() should feature
identical internal behavior, with the sole exception that
one rolls back and the end and the other commits at the end,
while also supporting execution options like transaction isolation level
at the connection level, include that engine.connect() will
return a connection that uses autobegin in the same way as the
session will. This is solely to support the "begin" event
noting that a transaction is begun which is tracked on the
connection. Behavior and design should be very similar to that
of the ORM session and "Transaction" should no longer be a very
explicit object.
Change-Id: I9c317d242ca7a435de0f17b1618355e29a10d1bc
| -rw-r--r-- | doc/build/changelog/migration_20.rst | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/doc/build/changelog/migration_20.rst b/doc/build/changelog/migration_20.rst index f5910ae5e..e61c63bf9 100644 --- a/doc/build/changelog/migration_20.rst +++ b/doc/build/changelog/migration_20.rst @@ -210,7 +210,13 @@ method:: conn.execute(text("some other SQL")) conn.rollback() -For the ORM, the above two patterns are already more or less how the +Above, the ``engine.connect()`` method will return a :class:`.Connection` that +features **autobegin**, meaning the ``begin()`` event is emitted when the +execute method is first used (note however that there is no actual "BEGIN" in +the Python DBAPI). This is the same as how the ORM :class:`.Session` will +work also and is not too dissimilar from how things work now. + +For the ORM, the above patterns are already more or less how the :class:`.Session` is used already:: session = sessionmaker() @@ -279,7 +285,8 @@ driver. To use a connection in autocommit mode:: with engine.connect().execution_options(isolation_level="AUTOCOMMIT") as conn: - result = conn.execute(stmt) + conn.execute(text("CREATE DATABASE foobar")) + The above code is already available in current SQLAlchemy releases. Driver support is available for PostgreSQL, MySQL, SQL Server, and newer releases |
