spacetimedb-upgrade について
SpacetimeDB の 1.0 から 2.0 への移行を支援する開発者向けスキルです。破壊的変更ごとに確認事項を整理し、移行ガイドと再生成したクライアント API の確認を促します。
主な機能
- 01コールバックとイベント型の変更確認
- 02サブスクリプション API とテーブルアクセサーの更新
- 03データベース接続名の確認
- 04Rust と C++ の sender 変更への対応
- 05更新メソッドなど移行項目の確認
活用シーン
- 01SpacetimeDB プロジェクトの 1.0 から 2.0 への移行
- 02クライアントの購読やイベント処理の変更調査
- 03コード生成や定期実行関数などの移行確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-upgradeインストール後、Claude Code で/spacetimedb-upgradeを入力して読み込まれたか確認します。
同梱ファイルreferences/upgrade.md
詳細
このスキルは、SpacetimeDB 1.0 から 2.0 への移行作業に使用します。
移行時の主な確認事項
- Reducer のコールバックが変更されました。永続性があり、サブスクライブ可能な結果通知にはイベントテーブルを使用してください。ガイドに記載された制限を許容できる場合に限り、呼び出しごとの
_then()形式のコールバックを使用してください。 - イベント型が変更されました。以前の Reducer 結果イベントの形が引き続き存在すると思い込まず、先にクライアントのイベント処理を更新してください。
- サブスクリプション API とテーブルアクセサー名が変更されました。バインディングを再生成し、推測した識別子に置き換えるのではなく、生成された名前に合わせて呼び出しを更新してください。
- クライアントは、以前のモジュール命名の想定ではなく、データベース名または ID を使って接続します。
- Rust と C++ では、
senderはメソッドになりました。ctx.sender()を使用してください。TypeScript と C# のプロパティ構文に変更はありません。 - 生成される更新メソッドの対象は主キーのみです。それ以外の変更では、主キーインデックスを使って更新するか、主キーを変更する場合は削除してから挿入してください。
- スケジュール関数、プライベートコード生成、ライトモード、
CallReducerFlags、確定読み取りには、それぞれ個別の移行ノートがあります。これらの領域を編集する前に、ガイドの該当セクションを参照してください。
参照先
| 必要な情報 | 開くファイル |
|---|---|
| 移行ガイドとチェックリスト | references/upgrade.md |
ガイダンス
- コードを編集する前に、該当する破壊的変更を正確に特定してください。ガイドでは、コールバック、イベント、サブスクリプション、テーブル名、接続名、
sender、更新、スケジューリング、コード生成、ライトモード、フラグ、確定読み取りについて、それぞれ個別の対処方法を説明しています。 - ガイドで推奨されている場合は、従来の Reducer コールバックパターンよりもイベントテーブルを優先してください。
- モジュール名、テーブルアクセサー、可視性、またはプライベート項目を変更した後は、生成されたクライアント API を確認してください。
コメント
Markdown 対応