# What changed in sqlalchemy-risingwave

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

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

## sqlalchemy-risingwave 2

### Breaking changes

- Async SQLAlchemy drivers such as asyncpg are not supported by this release. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Native ENUM support is disabled; SQLAlchemy enum values use a VARCHAR fallback. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Foreign-key support and foreign-key reflection are declared unsupported. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Reflection now returns real primary-key metadata where available; inspect constrained_columns rather than treating an empty result as no primary key. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Python 3.8 and 3.9 are dropped; the package now requires Python 3.10+. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- SQLAlchemy SERIAL, BIGSERIAL, and SMALLSERIAL DDL is rewritten to INTEGER, BIGINT, and SMALLINT; applications should provide explicit IDs because RisingWave lacks PostgreSQL autoincrement semantics. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- SQLAlchemy 1.4 support is dropped; the package now requires SQLAlchemy>=2.0,<2.1. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Native UUID support is disabled; SQLAlchemy UUID values use a VARCHAR fallback. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)

### New APIs and options

- Adds psycopg3 sync and async driver support through this URL; async engines can use SQLAlchemy create_async_engine. (2.1.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#210---2026-06-18)
- Adds an optional psycopg3 extra for installing the driver support. (2.1.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#210---2026-06-18)
- Adds a compatibility shim for Superset SQL Lab cancel-query probes using pg_backend_pid() and pg_terminate_backend(...). (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)

### Behavior and default changes

- An INSERT is not guaranteed to be immediately visible to a following SELECT until a checkpoint/barrier has passed or the user explicitly runs FLUSH;. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)

### Fixes and other changes

- CHECK, UNIQUE, and FOREIGN KEY constraints should not be relied on for runtime enforcement; the dialect does not strip, emulate, or pretend to enforce them. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Parameterized CHAR, VARCHAR, NUMERIC, and DECIMAL DDL is rendered as unparameterized RisingWave-accepted types. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
- Reflection and connection metadata paths gain SQLAlchemy 2.0 dialect API compatibility. (2.0.0) — [release notes](https://github.com/risingwavelabs/sqlalchemy-risingwave/blob/f23e5e0f1cb03d96be58c6024b1260076f931893/CHANGELOG.md#200---2026-06-17)
