Breaking
This release improves isolation of connections and transactions across concurrent tasks:
- Database connections are now task-local and are not inherited by child tasks
- The
@db.transaction
decorator uses the calling task's connection - Each new task uses a new connection unless a connection is explicitly provided
These changes improve the consistency of behavior and fix bugs where connections and transactions were not properly isolated such as: #123, #125, #134, #155, #424, and #452.
In most cases, these changes should not be breaking. However, if using an open transaction across tasks, the active connection (db.connection()
) now needs to be explicitly passed to each task. See the new documentation for an example.
Added
- Allow SQLite query parameters and support cached databases (#561)
- Support for unix socket for aiomysql and asyncmy (#551)
Changed
- Improve isolation of connections and transactions during concurrent usage (#546)
- Bump requests from 2.28.1 to 2.31.0 (#562)
zanieb marked this conversation as resolved. - Bump starlette from 0.20.4 to 0.27.0 (#560)
- Bump up asyncmy version to fix
No module named 'asyncmy.connection'
(#553) - Bump wheel from 0.37.1 to 0.38.1 (#524)
Fixed
- Fix the type-hints using more standard mode (#526)