News and Updates

SQLAlchemy 1.3.1 Released

permalink

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

permalink

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.

SQLAlchemy 1.2.18 Released

permalink

SQLAlchemy release 1.2.18 is now available.

Release 1.2.18 includes a series of dialect-level fixes as well as a few ORM fixes. Of note is another fix in a series of fixes involving a MySQL 8.0 related issue which impacts table reflection on Windows platforms.

Changelog for 1.2.18 is at Changelog.

SQLAlchemy 1.2.18 is available on the Download Page.

SQLAlchemy 1.3.0b3 Released

permalink

SQLAlchemy release 1.3.0b3 is now available.

Release 1.3.0b3 should hopefully be the last beta release for 1.3, as no additional major changes are planned. This release adds further restrictions on deprecated behaviors, most notably removing most instances of automatic coercion of Python strings that contain SQL fragments into text() objects; this behavior has been emitting warnings since 1.0 so should not be something in use by applications by now; as it has become an obscure feature it starts to look more like a bug rather than a deprecated behavior, so the warnings are now full exception messages.

The release also includes a variety of related improvements in the area of SQL identifiers and quoting, as well as some ORM-specific improvements. Finally, support for the Nose testing framework has been removed; SQLAlchemy has standardized on Py.test for some years now and Nose no longer worked as a test platform under Python 3 in any case.

For an overview of what's new in the 1.3 series, see Whats New in 1.3? Full changelog is available at Changelog.

SQLAlchemy 1.3.0b3 is available on the Download Page.

SQLAlchemy 1.2.17 Released

permalink

SQLAlchemy release 1.2.17 is now available.

Release 1.2.17 includes a fix to integer handling in the Oracle dialect specific to the 1.2 series, as well as two new event hooks in the ORM to assist with interception of bulk update and delete events.

Changelog for 1.2.17 is at Changelog.

SQLAlchemy 1.2.17 is available on the Download Page.