# What changed in sqlalchemy-continuum

> 14 changes in sqlalchemy-continuum 1 to 2 from its official release notes, upgrade guides and advisories: 6 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/pypi/sqlalchemy-continuum/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## sqlalchemy-continuum 2

### Breaking changes

- The version fetcher's next_query() now returns a Select instead of a Query; run it with session.scalars(). (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)
- The version fetcher's previous_query() now returns a Select instead of a Query; run it with session.scalars(). (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)
- RelationshipBuilder.process_query() is removed. (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)
- SQLAlchemy 1.4 is no longer supported; the supported range is SQLAlchemy>=2.0.2,<2.2. Installs on 1.4 keep resolving to SQLAlchemy-Continuum 1.9.x. (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)

### New APIs and options

- SQLModel table models can now be versioned the same way as plain SQLAlchemy models, without adding a dependency on SQLModel. (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)

### Fixes and other changes

- Version lookups, version relationships, changed_entities, vacuum(), count_versions(), and ActivityPlugin use select() instead of the legacy Query API, avoiding warnings with SQLModel sessions; results are unchanged. (2.0.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/2.0.0)

## sqlalchemy-continuum 1

### Breaking changes

- Python 3.10 is no longer supported; the minimum supported Python is 3.11, and installs on Python 3.10 resolve to SQLAlchemy-Continuum 1.8.0. (1.9.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.9.0)
- With SQLAlchemy 2.1, bare postgresql:// URLs select psycopg 3; install psycopg 3 or use an explicit postgresql+psycopg2:// URL to keep psycopg2. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)

### Behavior and default changes

- SQLAlchemy 2.1 is supported; the supported range is now SQLAlchemy>=1.4.53,<2.2. Python 3.10 installs continue resolving to SQLAlchemy 2.0. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)

### Fixes and other changes

- Python 3.15 is supported. (1.9.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.9.0)
- No longer flushes pending session changes on SQLAlchemy 2.1, so the count matches SQLAlchemy 1.4 and 2.0. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)
- No longer raises ValueError on SQLAlchemy pre-release versions such as 2.1.0rc2. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)
- When user_cls is configured, the Transaction model no longer picks up stray registry, Base, and user_cls class attributes, avoiding registry shadowing and an SQLAlchemy 2.1 SAWarning. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)
- An exception during mapper configuration no longer silently disables version model building for later configurations. (1.8.0) — [release notes](https://github.com/sqlalchemy-continuum/sqlalchemy-continuum/releases/tag/1.8.0)
