用途:该技能面向 SpacetimeDB 1.0 到 2.0 的迁移工作,帮助识别并修复 2.0 破坏性变更影响到的代码。
主要迁移检查点:
- reducer 回调发生变化。优先使用事件表实现持久、可订阅的结果通知;仅在指南说明的限制可接受时,才使用每次调用式的 _then() 回调。
- 事件类型发生变化,需先更新客户端事件处理,不要假定旧 reducer 结果事件结构仍然存在。
- 订阅 API 与表访问器名称发生变化。应重新生成绑定,并按生成的名称更新调用,而非猜测标识符后打补丁。
- 客户端按数据库名称或 identity 连接,不再沿用旧的模块命名假设。
- Rust 与 C++ 中 sender 现在是方法,使用 ctx.sender();TypeScript 与 C# 的属性写法不变。
- 只有主键会生成 update 方法。其他变更需通过主键索引更新,或在主键改变时删除后插入。
- 计划函数、私有代码生成、light mode、CallReducerFlags 与 confirmed reads 各自有单独的迁移说明,修改这些部分前应先加载对应指南章节。
参考映射:迁移指南与检查清单见 references/upgrade.md。
使用指引:编辑代码前先定位确切的破坏性变更;指南对回调、事件、订阅、表命名、连接名、sender、更新、调度、代码生成、light mode、flags 与 confirmed reads 分别给出处理办法。当指南建议时,优先使用事件表而非旧 reducer 回调模式。修改模块名、表访问器、可见性或私有项后,应检查生成的客户端 API。
限制:暂未提供更多细节;具体迁移步骤以对应指南章节为准。