News and Updates

SQLAlchemy 1.4.0b2 Released
permalink

The second beta release of the SQLAlchemy 1.4 series, 1.4.0b2, is now available.

Release 1.4.0b2 includes a wide array of continued fixes and additions to the many new APIs and features released in 1.4.0b1 and adds new features as well, including:

  • support for "table valued" and related SQL function forms, most prominently requested for PostgreSQL ARRAY and JSON related functions
  • Support for the MySQL aiomysql asyncio driver
  • INSERT..ON CONFLICT support for SQLite
  • A new variant to ORM Declarative support for Python Dataclasses, allowing SQLAlchemy Column, relationship() and other constructs to be used inline within Dataclass Field() objects
  • Support for mapper configuration and teardown to be per-registry(), allowing for example mappings associated with a particular declarative base to be configured while not impacting mappers from other bases
  • Per-connection logging tokens for debugging concurrent applications

The release also contains a wide array of fixes and missing behaviors from major new features, including:

  • many missing features and behaviors added to the asyncio extension
  • bugs and performance improvements for the asyncpg dialect for PostgreSQL.
  • A wide array of fixes and architectural improvements to the new "lambda SQL" feature that is intrinsic to the with_loader_criteria() feature

It's hoped that 1.4.0b2 will be the last beta release before 1.4.0 final, which itself should hopefully be released within the coming weeks.

Some weeks after 1.4.0 final is released, the 2.0 branch will be moved to main and SQLAlchemy's development as a Python 3 only system supporting type annotations can begin.

The ultimate goal of the 1.4 / 2.0 series is to make SQLAlchemy easier to learn, more consistent and more reliable.

A huge number of contributors as well as our core development team has helped tremendously in getting us to the second beta and everyone deserves our deepest thanks and gratitude.

The migration guide for SQLAlchemy 1.4 is the best place to start in order to get an overview of what's happening: What's New in 1.4?. The complete changelog is at Changelog.

SQLAlchemy 1.4.0b2 by naming convention is a beta release, so only installs with pip if the --pre flag is included. Links to pypi for SQLAlchemy 1.4.0b2 are available on the Download Page.

SQLAlchemy 1.3.23 Released
permalink

SQLAlchemy release 1.3.23 is now available.

Release 1.3.23 contains an array of bugfixes specific to dialects such as Oracle, PostgreSQL, and MySQL.

As is the case with all releases, we'd like to thank all the contributors who helped with this release.

Changelog for 1.3.23 is at Changelog.

SQLAlchemy 1.3.23 is available on the Download Page.

SQLAlchemy 1.3.22 Released
permalink

SQLAlchemy release 1.3.22 is now available.

An immediate release of 1.3.22 was necessary due to a regression in the Oracle dialect, where the new isolation level feature would result in a connectivity failure for Oracle database connections that do not have access to the v$transactions system view which is a common scenario for Oracle. The new logic will gracefully degrade to the pre-1.3.21 behavior if this view is not available or if any other errors occur while retrieving the default isolation level.

As is the case with all releases, we'd like to thank all the contributors who helped to quickly identify this issue.

Changelog for 1.3.22 is at Changelog.

SQLAlchemy 1.3.22 is available on the Download Page.

SQLAlchemy 1.3.21 Released
permalink

SQLAlchemy release 1.3.21 is now available.

Release 1.3.21 contains a series of bug fixes and small use case improvements.

As is the case with all releases, we'd like to thank all the contributors who helped with this release.

Changelog for 1.3.21 is at Changelog.

SQLAlchemy 1.3.21 is available on the Download Page.

SQLAlchemy 1.4.0b1 Released
permalink

The first beta release of the SQLAlchemy 1.4 series, 1.4.0b1, is now available.

Release 1.4.0b1 is the culmination of nearly 18 months of effort to envision and create a newly modernized and capable SQLAlchemy, containing the widest range of changes in many years. The first stop along the way to SQLAlchemy 2.0, release 1.4 intends to provide a gradual introduction of a newly revised and simplified way of working with both Core and ORM. A combination of major API refinements and capabilities hopes to provide a toolkit that is well suited towards the modern direction of the Python programming language and its associated communities.

Top level changes include:

  • A simpler and more consistent way to work with transactions, connections and ORM Sessions with unified patterns of use across Core and ORM.
  • The select() construct is highly refined and now serves as the universal way to create SELECT statements across Core and ORM; the new Result object unifies how results are handled across both components and adds a great many capabilities.
  • Transparent SQL-caching is now present in all cases, greatly reducing the latency to generate SQL for a persistently running application, including the majority of ORM-related SQL generation work; the previous extension-based approach to SQL caching is no longer needed
  • Python asyncio support is now fully integrated for both Core and ORM, to provide one of the first fully capable Python object relational mappers for asyncio
  • New mapper configuration paradigms unify both Declarative and "classical" mapping forms, adds support for Python dataclasses and others.

The 1.4 series serves as the migration gateway for applications to be compatible with the to-be-developed SQLAlchemy 2.0 release, which will move to Python 3 only and standardize completely on the new APIs and usage paradigms.

The ultimate goal of the 1.4 / 2.0 series is to make SQLAlchemy easier to learn, more consistent and more reliable.

A huge number of contributors as well as our core development team has helped tremendously in getting us to the first beta and everyone deserves our deepest thanks and gratitude.

The migration guide for SQLAlchemy 1.4 is the best place to start in order to get an overview of what's happening: What's New in 1.4?. The complete changelog is at Changelog.

SQLAlchemy 1.4.0b1 by naming convention is a beta release, so only installs with pip if the --pre flag is included. Links to pypi for SQLAlchemy 1.4.0b1 are available on the Download Page.