SurrealKit -- SurrealDBアプリケーションのスキーマ管理
SurrealKitは、SurrealDBアプリケーションのスキーマを、望ましい状態の.surqlファイルとして管理します。開発用の使い捨てデータベースと、共有または本番環境のロールアウトに対して別々のパスを提供します。
追跡されているアップストリームスナップショット: v0.6.3 プレリリース (7771b93ea563, 2026-05-13)。
v0.6.1 -> v0.6.3 パッチラインでは、ライブラリロックの修正、テンプレート変数、コメント除去のクリーンアップ、DROP ... IF EXISTS の処理、BUCKET、SEQUENCE、CONFIG に対する DEFINE のサポートが追加されました。
クイックスタート
# インストール
cargo binstall surrealkit
# または: cargo install surrealkit
# プロジェクト構造のスキャフォールディング
surrealkit init
# ローカル/使い捨てデータベースをローカルスキーマファイルに同期
surrealkit sync
# レビューされたロールアウトを生成して共有/本番環境に適用
surrealkit rollout plan --name add_customer_indexes
surrealkit rollout start 20260410120000__add_customer_indexes
surrealkit rollout complete 20260410120000__add_customer_indexes
主要コマンド
| コマンド | 用途 |
|---|---|
surrealkit sync | ローカル、プレビュー、または使い捨てDBに対する望ましい状態の同期 |
surrealkit sync --watch | ファイル監視によるローカル開発ループ |
surrealkit rollout baseline | 既存の共有DBにロールアウト追跡を確立 |
surrealkit rollout plan --name <名前> | 現在のスキーマ差分からレビュー用マニフェストを作成 |
surrealkit rollout start <ID> | 拡張フェーズを適用 |
surrealkit rollout complete <ID> | カットオーバー後に契約/破壊フェーズを適用 |
surrealkit rollout rollback <ID> | 進行中のロールアウトをロールバック |
surrealkit rollout lint <ID> | DBを変更せずにロールアウトを検証 |
surrealkit rollout status | DBに保存されたロールアウト状態を検査 |
surrealkit seed | シードデータを適用 |
surrealkit test | 宣言的スキーマ、権限、APIテストを実行 |
いつ使うべきか
- データベースがすぐにローカルファイルを反映する必要がある場合は
syncを使用します。 - 変更にステージング、レビュー、ロールバック、または制御されたカットオーバーが必要な場合は
rolloutを使用します。 - 決定論的なフィクスチャデータには
seedを使用します。 - CIで権限、スキーマ動作、API契約を検証するには
testを使用します。
環境変数
SurrealKitは以下の変数を読み取ります:
SURREALDB_HOST(フォールバック:DATABASE_HOST)SURREALDB_NAME(フォールバック:DATABASE_NAME)SURREALDB_NAMESPACE(フォールバック:DATABASE_NAMESPACE)SURREALDB_USER(フォールバック:DATABASE_USER)SURREALDB_PASSWORD(フォールバック:DATABASE_PASSWORD)SURREALDB_AUTH_LEVEL(フォールバック:DATABASE_AUTH_LEVEL)
テスト
database/tests/suites/*.toml 内の宣言的スイートは以下をサポートします:
sql_expectpermissions_matrixschema_metadataschema_behaviorapi_request
例:
surrealkit test --fail-fast --json-out artifacts/surrealkit-tests.json
完全なドキュメント
完全な運用ガイダンスについては、メインのスキルルールを参照してください:
- rules/surrealkit.md -- sync vs rollout戦略、環境変数、シード、宣言的テスト、CIパターン
- surrealdb/surrealkit -- アップストリームリポジトリ