· via Hacker News – Front Page (native)
SQLAlchemy 2.1.0 becomes the default pip install, raising the Python floor to 3.11
SQLAlchemy 2.1.0 is now what pip installs by default, bringing psycopg3 as the default PostgreSQL driver, an optional greenlet dependency and a Python 3.11 minimum.

First stable release of the 2.1 series
SQLAlchemy 2.1.0, the first production release of the 2.1 line, is available, and according to the announcement on the SQLAlchemy blog it is now the version that arrives when you run pip install sqlalchemy. The release note is dated September 24, 2026, and the story has since surfaced on the Hacker News front page.
The maintainers describe 2.1 as a far smaller step than the 2.0 release was three years earlier, and they do not expect upgrades to be difficult. Even so, the announcement flags a set of changes it calls hard — ones that may force adjustments to existing workflows.
Three changes that may bite
The first: greenlet no longer installs by default. Every asyncio feature in SQLAlchemy depends on greenlet, so async users now need pip install sqlalchemy[asyncio] to pull it in. Dependency manifests that assumed greenlet arrives with the base package will come up short.
The second: new default drivers for PostgreSQL and Oracle. URLs written as postgresql:// or oracle:// without a specific driver name now resolve to psycopg — also known as psycopg3 — and oracledb respectively. The URL itself keeps working, but the driver sitting underneath it may not be the one the application was originally tested against.
The third: Python 3.11 is the minimum supported version. The announcement points out that Python 3.10 reaches end of life a little over a week after the release, and notes that supporting EOL interpreters has grown harder over the years as third-party tooling such as pip, nox and GitHub Actions retires older Python versions aggressively.
What 2.1 adds
On the feature side, the announcement highlights three additions. A new tstring() construct, a variant of the existing text() construct, brings t-string support and allows bind parameters to be indicated dynamically within plain string SQL statements. CREATE VIEW and CREATE TABLE AS are now supported natively, delivering the CreateView structure that had circulated in project recipes for years. And SQLAlchemy 2.1 introduces support for Microsoft's mssql-python driver, something the project says it built while working closely with the Microsoft team.
Because 2.1 lands three years after 2.0, the overall list of changes and improvements is long, and the announcement directs upgraders to its "What's New in SQLAlchemy 2.1?" migration guide alongside the detailed changelog.
Why it matters
SQLAlchemy underpins a large share of database work in the Python ecosystem, and a default-version bump travels quickly: fresh installs, unpinned CI runs and new Docker builds all start pulling 2.1.0 straight away.
Two of the hard changes fail quietly rather than loudly. A bare postgresql:// connection string silently swaps the underlying driver to psycopg3, which can surface behavioral differences in production, and async applications that upgrade without adding the asyncio extra will hit a missing greenlet dependency at runtime.
Teams that pin exact versions are insulated for now, but anyone running on floating version constraints should read the migration guide before their next build — and confirm that their CI images run Python 3.11 or newer.
- #python
- #sqlalchemy
- #databases
- #orm
- #open-source