Community研究與資料分析github.com

24601/surreal-skills

SurrealKit 的 schema 同步、遷移發佈、種子資料與宣告式測試,適用於 SurrealDB 應用程式。屬於 surreal-skills 集合的一部分。

surreal-skills 是什麼?

SurrealKit 是一個專為 SurrealDB 應用程式設計的 schema 管理工具,以期望狀態的 `.surql` 檔案管理資料庫結構,並針對開發用的可拋棄資料庫與共享或生產資料庫提供不同的路徑。它支援多種平台,如 CLI 與開發環境,並透過 `sync` 與 `rollout` 指令實現即時同步或受控發佈流程。此外,SurrealKit 還包含種子資料(`seed`)與宣告式測試(`test`)功能,可在 CI 中驗證權限、schema 行為與 API 合約。此技能基於上游 v0.6.3 版本,並提供完整的環境變數支援與擴展的測試套件格式。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/24601/surreal-skills/tree/main/skills/surrealkit

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

SurrealKit -- SurrealDB 應用程式的 Schema 管理

SurrealKit 將 SurrealDB 應用程式的 schema 管理為期望狀態的 .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

# 將本地/可拋棄資料庫與本地 schema 檔案同步
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為本地、預覽或可拋棄資料庫進行期望狀態同步
surrealkit sync --watch本機開發循環,搭配檔案監控
surrealkit rollout baseline在現有共用資料庫上建立發佈追蹤
surrealkit rollout plan --name <name>從目前 schema 差異建立審查清單
surrealkit rollout start <id>套用力擴充階段
surrealkit rollout complete <id>在切換後套用收縮/破壞階段
surrealkit rollout rollback <id>回復進行中的發佈
surrealkit rollout lint <id>驗證發佈,但不修改資料庫
surrealkit rollout status檢查儲存在資料庫中的發佈狀態
surrealkit seed套用種子資料
surrealkit test執行宣告式 schema、權限與 API 測試

使用時機

  • 當資料庫應立即反映本地檔案時,使用 sync。
  • 當變更需要分階段、審查、回復或受控切換時,使用 rollout。
  • 使用 seed 進行確定性的測試固定資料。
  • 在 CI 中使用 test 驗證權限、schema 行為與 API 合約。

環境變數

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_expect
  • permissions_matrix
  • schema_metadata
  • schema_behavior
  • api_request

範例:

surrealkit test --fail-fast --json-out artifacts/surrealkit-tests.json

完整文件

請參閱主要技能規則以取得完整的操作指引:

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

相關技能