SurrealKit – Schemaverwaltung für SurrealDB-Apps
SurrealKit verwaltet SurrealDB-Anwendungsschemata als gewünschte Zustands-.surql-Dateien mit getrennten Pfaden für wegwerfbare Entwicklungsdatenbanken und geteilte oder Produktions-Rollouts.
Verfolgter Upstream-Snapshot: v0.6.3 Pre-Release (7771b93ea563, 2026-05-13).
Die Patch-Reihe v0.6.1 -> v0.6.3 fügte Bibliotheks-Sperrkorrekturen, Template-Variablen, Kommentarentfernungsbereinigung, DROP ... IF EXISTS-Behandlung und DEFINE-Abdeckung für BUCKET, SEQUENCE und CONFIG hinzu.
Schnellstart
# Installieren
cargo binstall surrealkit
# oder: cargo install surrealkit
# Projektstruktur erstellen
surrealkit init
# Lokale/wegwerfbare Datenbank mit lokalen Schema-Dateien abgleichen
surrealkit sync
# Einen überprüften Rollout für geteiltes/Produktion generieren und anwenden
surrealkit rollout plan --name add_customer_indexes
surrealkit rollout start 20260410120000__add_customer_indexes
surrealkit rollout complete 20260410120000__add_customer_indexes
Kernbefehle
| Befehl | Verwendung |
|---|---|
surrealkit sync | Abgleich des gewünschten Zustands für lokale, Vorschau- oder wegwerfbare Datenbanken |
surrealkit sync --watch | Lokale Entwicklungsschleife mit Dateiüberwachung |
surrealkit rollout baseline | Rollout-Verfolgung auf einer bestehenden gemeinsamen Datenbank einrichten |
surrealkit rollout plan --name <name> | Ein überprüftes Manifest aus dem aktuellen Schema-Diff erstellen |
surrealkit rollout start <id> | Die Expansionsphase anwenden |
surrealkit rollout complete <id> | Die Vertrags-/Zerstörungsphase nach dem Umschalten anwenden |
surrealkit rollout rollback <id> | Ein laufendes Rollout rückgängig machen |
surrealkit rollout lint <id> | Ein Rollout validieren, ohne die Datenbank zu verändern |
surrealkit rollout status | Den in der Datenbank gespeicherten Rollout-Status anzeigen |
surrealkit seed | Seed-Daten anwenden |
surrealkit test | Deklarative Schema-, Berechtigungs- und API-Tests ausführen |
Wann verwenden
- Verwenden Sie
sync, wenn die Datenbank sofort die lokalen Dateien widerspiegeln soll. - Verwenden Sie
rollout, wenn Änderungen eine Stufung, Überprüfung, Rückgängigmachung oder kontrollierte Umschaltung benötigen. - Verwenden Sie
seedfür deterministische Fixture-Daten. - Verwenden Sie
testin CI, um Berechtigungen, Schemaverhalten und API-Verträge zu validieren.
Umgebung
SurrealKit liest diese Variablen:
SURREALDB_HOST(Fallback:DATABASE_HOST)SURREALDB_NAME(Fallback:DATABASE_NAME)SURREALDB_NAMESPACE(Fallback:DATABASE_NAMESPACE)SURREALDB_USER(Fallback:DATABASE_USER)SURREALDB_PASSWORD(Fallback:DATABASE_PASSWORD)SURREALDB_AUTH_LEVEL(Fallback:DATABASE_AUTH_LEVEL)
Testen
Deklarative Suites in database/tests/suites/*.toml unterstützen:
sql_expectpermissions_matrixschema_metadataschema_behaviorapi_request
Beispiel:
surrealkit test --fail-fast --json-out artifacts/surrealkit-tests.json
Vollständige Dokumentation
Siehe die Haupt-Skill-Regel für die vollständige Betriebsanleitung:
- rules/surrealkit.md – Sync vs. Rollout-Strategie, Umgebungsvariablen, Seeds, deklarative Tests und CI-Muster
- surrealdb/surrealkit – Upstream-Repository