This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+12 more
Affected surfaces
Summary
AI summaryFixed non‑idempotent migration causing duplicate column name: embedding errors on rewound schema versions.
Full changelog
Hotfix for the v0.8.13 cluster upgrade failure (yantrikos/yantrikdb-server homelab incident, 2026-05-09).
The bug
Engine 0.6.x → 0.7.2 migration tripped on duplicate column name: embedding for any deployment whose meta.schema_version had been previously rewound — e.g. by a brief rollback to an older binary against a newer on-disk DB. SQLite has no IF NOT EXISTS for ALTER TABLE ADD COLUMN, so MIGRATE_V23_TO_V24 was non-idempotent at the statement level.
The fix (two parts)
1. Idempotent migration runner. New run_migration_idempotent helper splits each migration SQL batch on ;, executes statements individually, and swallows known-safe errors:
duplicate column name: <X>— re-runningALTER TABLE ADD COLUMN<X> already exists— defensive belt-and-suspenders for CREATE statements
Replaces conn.execute_batch(sql) in the migration loop. Makes every entry in the v1→v25 chain replay-safe retroactively, healing already-affected deployments without manual intervention.
2. MAX-stamp meta.schema_version. Previously open() unconditionally wrote SCHEMA_VERSION to meta — which silently downgraded the stamp if an older binary ran against a newer DB. Now writes max(existing_version, SCHEMA_VERSION). Forward-only progress on the meta stamp going forward.
Tests
Two new regression tests in engine/tests.rs:
migration_replay_does_not_trip_on_already_present_column— reproduces the homelab failure scenario.migration_meta_stamp_does_not_downgrade— locks the MAX-stamp invariant.
1421 library tests pass (1419 + 2 new). Release build clean.
Upgrade path
Existing v0.6.x / v0.7.x deployments that hit the bug: pull a server build with engine ≥0.7.3. Engine open() will:
- See
existing_version <= 23(or whatever your meta got rewound to) - Re-run V23_TO_V24 idempotently —
ALTER TABLE ADD COLUMNno-ops because column exists - Run V24_TO_V25 cleanly
- MAX-stamp meta to current SCHEMA_VERSION
No data loss, no SQL surgery, no manual fixture restoration.
Diagnosis
yantrikdb-server msg 3467c556 (homelab cluster incident, .140/.141 nodes), engine response fa070846, fix commit a5de0f2.
🤖 Generated with Claude Code
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About YantrikDB
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]