News and Updates

SQLAlchemy 1.2.19 Released


SQLAlchemy release 1.2.19 is now available.

Release 1.2.19 includes a series of small fixes that have accumulated over the past two months since release 1.2.18. As the 1.3.x series is now in full swing, fixes and releases for the 1.2.x series will continue to be less frequent.

Changelog for 1.2.19 is at Changelog.

SQLAlchemy 1.2.19 is available on the Download Page.

SQLAlchemy 1.3.3 Released


SQLAlchemy release 1.3.3 is now available.

Release 1.3.3 fixes an ORM level regression and a SQLite connection-pool related regression in the 1.3 series as well as a PostgreSQL specific regression introduced in 1.3.2. The ORM issue is likely the most impactful as it affects complex Query.join() conditions that have been observed in downstream projects. A few other minor issues are corrected as well.

Changelog for 1.3.3 is at Changelog.

SQLAlchemy 1.3.3 is available on the Download Page.

SQLAlchemy 1.3.2 Released


SQLAlchemy release 1.3.2 is now available.

Release 1.3.2 is the roughly monthly release containing the last few weeks of minor fixes.

Changelog for 1.3.2 is at Changelog.

SQLAlchemy 1.3.2 is available on the Download Page.

SQLAlchemy 1.3.1 Released


SQLAlchemy release 1.3.1 is now available.

Release 1.3.1 fixes a few issues with MS SQL Server, one of which is a regression as of the 1.3.x series, the other is an issue involving snapshot transaction isolation which is backported for the next 1.2.x release.

Changelog for 1.3.1 is at Changelog.

SQLAlchemy 1.3.1 is available on the Download Page.

SQLAlchemy 1.3.0 Released


SQLAlchemy release 1.3.0 is now available.

Release 1.3.0 is the first official release in the 1.3 series, after three beta releases. The release represents the past fourteen months of new feature development since version 1.2 was released.

The 1.3 series has focuses in the areas of ORM behavioral improvements, Core behavioral improvements, and a large sweep of deprecations of old behaviors and features that are no longer necessary for the modern Python database development landscape. With the upcoming end of Python 2 maintenance, release 1.3 begins to lean towards a longer term plan for a simplified SQLAlchemy tailored to a Python 3 only world.

Major highlights include:

  • An ORM relationship can now target an AliasedClass mapping, that is, a class that is essentially mapped to an alternative selectable like an alias or a subquery. The relationship-to-aliased-class feature replaces the last use case for non-primary mappers with a much more capable pattern.
  • The "expanding IN" feature added in 1.2, which allows a single bound parameter to be used with an IN list of arbitrary size on any database backend, now supports empty lists as well. With the completion of this feature, the stage is set for "expanding IN" to be the default behavior for IN expressions in subsequent feature releases.
  • A large series of improvements to the association proxy extension.
  • Major behavioral improvements to the loader options system, including more use cases supported and much better error messages
  • Support for SQLite JSON persistence and expression operations via the base JSON datatype.

Overall, most changes are fully backwards compatible with a SQLAlchemy 1.2 application, with the exception of the hard removal of the long-deprecated automatic coercion of SQL phrases into text (see Coercion of string SQL fragments to text() fully removed). Users should please carefully review the full series of migration notes at What's new in 1.3? to see the full expanse of things that have changed and should always fully test existing applications against the 1.3 series before promoting to production.

The complete changelog for 1.3.0 as well as all the beta releases is at Changelog; we'd like to thank the many contributors who helped with this release.

SQLAlchemy 1.3.0 is available on the Download Page.