# What changed in surrealdb

> 17 changes in surrealdb 1 to 2 from its official release notes, upgrade guides and advisories: 3 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/pypi/surrealdb/

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

## surrealdb 2

### Breaking changes

- Python 3.9 support is dropped. (2.0.0) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v2.0.0)

### New APIs and options

- Adds support for SurrealDB 3.x features. (2.0.0) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v2.0.0)

### Behavior and default changes

- Error handling has changed. (2.0.0) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v2.0.0)
- Adds support for musl Linux. (2.0.0) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v2.0.0)

### Fixes and other changes

- Fixes the WebSocket session transaction ID issue. (2.0.0) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v2.0.0)

## surrealdb 1

### Breaking changes

- GeometryPolygon enforces GeoJSON-compliant closed linear rings. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- Database method return types are simplified to Value. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)

### New APIs and options

- Live queries initiated in db.query can now be subscribed to. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- Adds support for using a native embedded database. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- The client issues text-based queries instead of using the v1 RPC methods. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)

### Behavior and default changes

- RecordId can now be serialized and deserialized by pydantic. (1.0.8) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.8)
- Duration.parse() supports parsing compound durations. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)

### Fixes and other changes

- The package now supports Python 3.9. (1.0.8) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.8)
- Fixes a race condition in concurrent environments. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- Fixes encoding of decimal.Decimal values. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- Fixes Duration encoding and decoding. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
- String identifiers in RecordID are escaped to match SurrealDB behaviour. (1.0.7) — [release notes](https://github.com/surrealdb/surrealdb.py/releases/tag/v1.0.7)
