News and Updates

SQLAlchemy 1.0.4 Released


SQLAlchemy release 1.0.4 is now available.

With release 1.0.4 we are pretty much through all the bumps we had in the 0.9 to 1.0 movement. Four additional very minor regressions are solved in this release. Most prominently, another issue regarding recent enhancements to the Query.column_descriptions collection, also slated for release in 0.9.10, was fixed.

Changelog for 1.0.4 is at:


SQLAlchemy 1.0.4 is available on the Download Page.

SQLAlchemy 1.0.3 Released


SQLAlchemy release 1.0.3 is now available.

Release 1.0.3 is the latest in a series of weekly releases intended to quickly address remaining small regressions that have come up since the 1.0.0 release. One fairly serious unit-of-work regression regarding SQL expressions is fixed, the new behavior regarding textual expressions with "ORDER BY" has been scaled back a bit to better suit now-deprecated use cases, a little-used ORM event hook was repaired as it prevented the SQLSoup package from working, and the metadata "on create/on drop" events experienced a format change in one of the lesser used arguments being passed, which was reverted to its previous form.

The release also includes a few additional bug fixes and a series of new features within the connection pool / dialect system to allow for better visibility and customization of the connectivity process.

Changelog for 1.0.3 is at:


SQLAlchemy 1.0.3 is available on the Download Page.

SQLAlchemy 1.0.2 Released


SQLAlchemy release 1.0.2 is now available.

As additional regressions are still being reported, we would like to get these changes out as fast as possible so that early adopters are working on a 1.0 version that is most representative of what its final form will be. 1.0.2 includes two additional fixes, one of which was particularly thorny in that it was already "fixed" in 1.0.0b4, but was not fixed correctly, regarding the placement of plain label names in GROUP BY expressions; so the incorrect fix is reverted and the original regression from 0.9 is resolved as well.

Changelog for 1.0.2 is at:


SQLAlchemy 1.0.2 is available on the Download Page.

SQLAlchemy 1.0.1 Released


SQLAlchemy release 1.0.1 is now available.

This is a quick bug-fix release that repairs several new regressions identified in the 1.0.0 release, not found during the beta period. All users of 1.0.0 are encouraged to upgrade to 1.0.1.

Key elements of this release include fixes regarding the NEVER_SET symbol leaking into queries in some cases, fixes to SQLite when using DDL in conjunction with referential integrity enabled, a fix to the EXISTS construct which primarily impacts queries that use special datatypes, and repairs to the Firebird dialect regarding the new LIMIT/OFFSET features.

In order to accommodate some of these fixes, there are three additional behavioral changes in 1.0.1; a new warning is emitted when using DDL with SQLite in conjunction with mutually-dependent foreign keys (e.g. a reference cycle), a new warning is emitted when running ORM relationship comparisons when the target object contains the value None for any of the Python-side column values, and a change is made regarding which data values are used within a relationship comparison that uses the != operator, in order to make the behavior consistent with that of the == operator as used in the same context. The migration notes contains updates for all three of these changes, and they are each linked directly from the changelog which should be carefully reviewed.

Changelog for 1.0.1 is at:


SQLAlchemy 1.0.1 is available on the Download Page.

SQLAlchemy 1.0.0 Released


SQLAlchemy release 1.0.0 is now available.

Release 1.0.0 marks the tenth major SQLAlchemy series and occurs within the tenth year of the SQLAlchemy project overall; development started in 2005 and the release of 0.1.0 was in February of 2006.

Calls for SQLAlchemy to go "1.0" started early on, as early as version 0.3 (!). However, the magnitude of the task taken on by SQLAlchemy was much broader than that; the development philosophy taken by the project is one of slowly building out a wide-reaching base of functionality, integrating many rounds of refactoring and rethinks over a long period of time and building new paradigms and features on top only as the foundation matures enough to support them.

Users of 1.0 have the benefit of ten years of production deployments, total rethinks of core APIs in early versions, a vast number of API additions and refinements over later versions, at least a dozen major internal rearchitectures, and as always a relentless focus on improving performance.

The SQLAlchemy project could not be what it is today without the unbelievable support, input, and sheer love of the user community - from the vast amounts of knowledge and improvements gained from tens of thousands of mailing list messages, to the improvements hammered out through over three thousand bug reports, to the amazing developers all around the world who have presented talks and tutorials on SQLAlchemy and of course the audiences who continue to attend them, to the bloggers and book authors supporting our community, to the tweeters sending gratitude our way, to our many hundreds of contributors of patches and pull requests, as well as financial contributors who have consistently supported SQLAlchemy's hosting costs, as well as more than a few burritos ;).

In particular, SQLAlchemy's success was made possible by its original developer team, and I would like to express to all of them my very deep gratitude for their tremendous efforts towards contributing code and wisdom to the project, as well as support of my work from very early on:

  • Jason Kirtland
  • Gaëtan de Menten
  • Diana Clarke
  • Michael Trier
  • Philip Jenvey
  • Ants Aasma
  • Paul Johnston
  • Jonathan Ellis

I'd also like to thank Simon King and Jonathan Vanasco for their ongoing contributions towards the mailing list, Alex Grönholm, creator of the excellent sqlacodegen project, for his energetic and ubiquitous support of thousands of IRC users, and Sanjiv Singh, early developer of GeoAlchemy, for the awesome set of drink coasters I use every day :).

Release 1.0.0 features an array of usability enhancements, new features, bug fixes, and considerable performance enhancements. After five short beta releases, it is anticipated that the impact of upgrading from 0.9 or even 0.8 to 1.0.0 should be minimal; however in all cases, users are highly encouraged to carefully read through the behavioral enhancements and changes documented in the 1.0 migration notes, at What's new in 1.0?

Changelog for 1.0.0 is at:


SQLAlchemy 1.0.0 is available on the Download Page.