mcpField
S
spacetimedb-databases

spacetimedb-databases

github.com/danmossa数据与数据库2168 次安装19 周前更新
代码仓库

关于 spacetimedb-databases

用于 SpacetimeDB 数据库模块生命周期和迁移工作的技能,帮助开发者处理发布、迁移安全及事务行为,并指向相关参考资料。

主要功能

  1. 01说明模块与数据库的生命周期
  2. 02指导构建和发布流程
  3. 03分类自动迁移变更的安全性
  4. 04建议生产环境采用增量迁移
  5. 05链接开发和事务参考资料

适用场景

  1. 01发布前检查架构变更
  2. 02规划自动迁移不支持的变更
  3. 03安全重置开发数据
  4. 04查找事务和模块发布指南

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/danmossa/spacetimedb-skills --skill spacetimedb-databases

安装后在 Claude Code 中输入/spacetimedb-databases确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
databases-automatic-migrations.md
databases-building-publishing.md
databases-cheat-sheet.md
databases-developing.md
databases-incremental-migrations.md
databases-transactions-atomicity.md
databases.md

详细介绍

将此技能用于数据库模块生命周期和迁移工作。

核心模式

  • 模块包含代码和架构;数据库是已发布的实例,以名称或标识来区分。
  • spacetime publish <DATABASE_NAME> 会构建并上传模块,在存在 init 时运行它,然后开始提供模块服务。
  • 发布到现有数据库时,会尝试自动迁移,并在保持客户端连接活跃的同时,原子性地热切换模块。
  • 公共架构、reducer、procedure 或视图的接口发生变化后,重新生成并发布客户端绑定。
  • Reducer 在自动事务中运行;procedure 在需要写入数据库时会手动开启事务。

迁移检查清单

  • 安全:添加表、添加索引、添加或移除自动递增注解、将私有表设为公开、添加 reducer、移除唯一约束。
  • 可能造成破坏性影响:在末尾添加带默认值的列、更改或移除 reducer、将公开表设为私有、移除主键、移除订阅所用的索引。
  • 自动迁移禁止:移除表、移除/重命名/重新排序/更改现有列、添加没有默认值的列、在中间添加列、更改调度表状态、添加唯一约束或主键约束。
  • 开发期间,--delete-data 可用于重置数据。除非确实要永久丢失数据,否则不要在生产环境中使用。
  • 对于生产环境中禁止的更改,请采用增量迁移策略:添加新结构、双写并回填、迁移客户端,然后稍后弃用旧结构。

参考索引

需求打开
概览和学习路径references/databases.md
本地开发references/databases-developing.md
构建和发布references/databases-building-publishing.md
迁移规则references/databases-automatic-migrations.md、references/databases-incremental-migrations.md
事务行为references/databases-transactions-atomicity.md
密集语法示例references/databases-cheat-sheet.md

指南

  • 更改表结构、名称、索引、约束或公开/私有可见性前,先检查迁移是否安全。
  • 对于架构定义,请加载 spacetimedb-tables。
  • 对于 reducer 事务行为,请加载 spacetimedb-reducers。

评论

支持 Markdown