News and Updates
SQLAlchemy 1.1.3 Released
SQLAlchemy release 1.1.3 is now available.
Release 1.1.3 continues a series of very fast releases since 1.1.0 was first released, containing fixes for several more small regressions. As is usually the case with such regressions, each one involves an unanticipated use case so are not expected to impact most users.
Changelog for 1.1.3 is at Changelog.
SQLAlchemy 1.1.3 is available on the Download Page.
SQLAlchemy 1.1.2 Released
SQLAlchemy release 1.1.2 is now available.
Release 1.1.2 includes a small handful of bug fixes, including some small regressions from the 1.0 series, some ORM loading improvements, and a fix to the new PostgreSQL ON CONFLICT feature.
Changelog for 1.1.2 is at Changelog.
SQLAlchemy 1.1.2 is available on the Download Page.
SQLAlchemy 1.1.1 Released
SQLAlchemy release 1.1.1 is now available.
Release 1.1.1 includes two quick hits to issues reported in 1.1.0, released two days ago. One is a failure to connect to some configurations of SQL Server with pyodbc, and the other is that a newly added CompileError that intercepts primary key issues on INSERT has been dialed back to a warning, allowing the database to raise IntegrityError as it normally would.
Changelog for 1.1.1 is at Changelog.
SQLAlchemy 1.1.1 is available on the Download Page.
SQLAlchemy 1.1.0 Released
SQLAlchemy release 1.1.0 is now available.
Release 1.1.0 is the first official release in the 1.1 series, after three beta releases. The release represents the past eighteen months of new feature development since version 1.0 was released. The very long list of new capabilities has a focus on Core, particularly in the area of SQL syntaxes that are either solely supported by, or are most commonly used on the Postgresql database, and development was greatly assisted by a highly involved community working sometimes for many weeks on new features.
Major new SQL features include:
- Common table expression (CTE) support for INSERT, UPDATE, DELETE
- Support for Postgresql upsert - INSERT..ON CONFLICT (DO UPDATE | DO NOTHING)
- Support for MySQL's JSON type
- Support for RANGE and ROWS specification within window functions
- Support for the SQL LATERAL keyword support by Postgresql
- Support for TABLESAMPLE
- Core and ORM support for FULL OUTER JOIN
- Support for IS DISTINCT FROM and IS NOT DISTINCT FROM
- Support for WITHIN GROUP, ARRAY_AGG
- Support for FOR UPDATE SKIP LOCKED / FOR NO KEY UPDATE / FOR KEY SHARE
There are also many new ORM features including a new "raise" loader that prevents inadvertent lazy loading, new event hooks for Session objects that allow tracking of all stages of an object's lifecycle, and new "mutable" collections for columns that store serialized object structures.
Along with the new SQL syntax and ORM features are a wide array of ORM and execution engine fixes and improvements, and an absolute minimum of behavioral changes that run the risk of being surprising. Nevertheless, as is always the case, there are many areas where something that didn't work before will work now; users should please carefully review the full series of migration notes at What's new in 1.1? to see the full expanse of things that have changed.
The complete changelog for 1.1.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.1.0 is available on the Download Page.
SQLAlchemy 1.0.15 Released
SQLAlchemy release 1.0.15 is now available.
Release 1.0.15 features a small number of bug fixes that have been made over the past two months since the previous 1.0.x release.
Users should review the changelog for 1.0.15 at Changelog; we'd like to thank the many contributors who helped with this release.
SQLAlchemy 1.0.15 is available on the Download Page.