Community研究与数据分析github.com

24601/surreal-skills

SurrealKit 模式同步、迁移回滚、种子数据填充及声明式测试,用于 SurrealDB 应用。属于 surreal-skills 系列。

surreal-skills 是什么?

SurrealKit 是一个用于 SurrealDB 应用的模式管理工具,它将数据库模式作为期望状态的 `.surql` 文件进行管理,并提供了针对开发数据库和共享/生产环境的不同处理路径。该工具支持通过 `sync` 命令实现本地文件与数据库的实时同步,方便开发迭代;而 `rollout` 命令则提供了规划、审查、回滚和受控切换的生产级迁移能力。SurrealKit 还集成了种子数据填充(`seed`)和声明式测试(`test`)功能,能够验证权限、模式行为和 API 契约。它兼容多种 AI 开发环境(如 Claude Code、Coder、Codex),通过环境变量与 SurrealDB 实例连接,是进行 SurrealDB 应用开发、测试和 CI/CD 集成的得力助手。

兼容平台~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 应用的模式管理

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本地、预览或可丢弃数据库的期望状态协调
surrealkit sync --watch带文件监听的本地开发循环
surrealkit rollout baseline在现有共享数据库上建立迁移追踪
surrealkit rollout plan --name <名称>从当前模式差异创建审查清单
surrealkit rollout start <ID>应用扩展阶段
surrealkit rollout complete <ID>在切换后应用收缩/破坏阶段
surrealkit rollout rollback <ID>回滚进行中的迁移
surrealkit rollout lint <ID>验证迁移而不修改数据库
surrealkit rollout status检查存储在数据库中的迁移状态
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_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.

相关技能