convex-migrate について
convex-migrateは、既存レコードを無効にせず、稼働中のConvexアプリのスキーマとデータを変更するスキルです。新しいフィールドを一時的に任意にし、バックフィルと検証の後にバリデーターを厳格化します。
主な機能
- 01新規フィールドを任意項目として追加
- 02既存レコードをバックフィル・変換
- 03バリデーター厳格化前にデータを検証
- 04移行前後のレコード数を比較
活用シーン
- 01稼働中のスキーマに必須フィールドを追加
- 02移行中に既存レコードを変換
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ convex/ agent-skills --skill convex-migrateインストール後、Claude Code で/convex-migrateを入力して読み込まれたか確認します。
詳細
ライブアプリのスキーマ/データを移行する
既存のデータを損なわずにデプロイ済みのスキーマを変更します。まずスキーマ変更を段階的に行い、@convex-dev/migrations をインストールして、既存の行を有効にするバックフィルを作成して実行し、バリデーターを厳格化する前に検証します。
ワークフロー
- まず新しいフィールドを省略可能にします(デプロイ時に既存の行が拒否されないようにします)。
- @convex-dev/migrations をインストールし、既存の行をバックフィル/変換するマイグレーションを作成します。
- マイグレーションを実行し、すべての行が有効であることを確認します。
- バックフィルの完了後に、バリデーターを厳格化します(フィールドを必須にします)。
ルール
- バックフィルが完了する前にバリデーターを厳格化しないでください。既存の行が拒否され、ライブアプリが壊れます。
- 新しいフィールドはまず省略可能として追加し、移行した後で必須にします。
- 移行の前後で行数を確認します。
コメント
Markdown 対応