@mdrv/surrealdx
v0.0.5
Published
Schema versioning layer & migration protocol for SurrealDB
Downloads
151
Maintainers
Readme
SurrealDX
Schema versioning layer & migration protocol for SurrealDB.
SurrealDX tracks a SurrealDB database's schema as semver-versioned bundles, detects breaking changes between versions, and runs safe upgrade/downgrade rollouts in both directions.
Status
Pre-alpha. Currently targeting v0.0.1 (prototype slice). See docs/99-roadmap.md for the delivery plan.
The first real consumer is @mdrv/nx, a zettelkasten-style CLI knowledgebase.
Why
SurrealDB's schema is mutable SQL, but the ecosystem lacks a canonical way to:
- Version schema snapshots
- Detect breaking changes between versions
- Run safe, reversible migrations
- Negotiate schema versions between a consumer app and the database
SurrealDX fills that gap with a TypeScript-native, operator-first tool. It is not a user-data migration tool, a real-time sync engine (that is SurrealHub's job), or a SurrealDB v2-or-earlier compatibility layer.
Highlights
- Semantic version graph. Versions are DAG nodes; migrations are directional edges (upgrade and downgrade authored independently).
- Structural diff engine. Pure function over normalized schema documents; classifies changes as non-breaking, breaking, or conditionally-breaking.
- Configurable policy.
block/warn/allowper project, with per-category overrides. - Phased expand/contract rollouts. Non-destructive changes land first; destructive changes wait for operator confirmation.
- Downgrade is a forward rollout, not an inverse. Independently authored, safe to publish.
- SurrealMX-friendly. Schema-level downgrades compose cleanly with SurrealMX storage-engine history (different layers, no conflict).
- Pure TypeScript on Bun. No Rust, no napi, no SurrealKit dependency.
Documentation
The full design lives in docs/. Start at docs/README.md for the reading order.
Key entry points:
Agents working on this repo should read AGENTS.md first.
Stack
Bun · TypeScript (strict) · surrealdb · Crustjs · LogTape · dprint · Zod · semver
License
TBD
