convex-migrate — скилл для Claude Code: миграции схемы Convex
Скилл проводит миграцию схемы и бэкфилл данных в развёрнутом приложении Convex через @convex-dev/migrations. Пригодится, когда меняешь схему на живом приложении.
npx skills add convex/agent-skills --skill convex-migrate -a claude-codeЧто делает convex-migrate
Скилл описывает порядок действий для смены схемы на работающем приложении Convex. Сначала новое поле добавляется как необязательное, чтобы деплой не отклонил существующие строки. Потом ставится @convex-dev/migrations и пишется миграция, которая приводит старые строки к новому виду. После прогона миграции валидатор можно ужесточить — сделать поле обязательным.
Внутри один файл SKILL.md с рабочим процессом и правилами. Правила короткие и жёсткие: не ужесточать валидатор до завершения бэкфилла, добавлять поля сначала необязательными, сверять число строк до и после. Первое правило тут главное — если сделать наоборот, существующие строки перестанут проходить проверку и живое приложение сломается.
Скилл не выполняет миграцию сам. Он задаёт агенту последовательность шагов, а код миграции и запуск остаются за тобой.
Какие задачи решает
- поменять схему на развёрнутом приложении без падения живых запросов
- добавить поле и заполнить его в старых строках
- написать бэкфилл через @convex-dev/migrations
- сверить число строк до и после миграции
- сделать поле обязательным только после того, как данные приведены в порядок
Примеры запросов агенту
- помоги мигрировать схему Convex: добавь поле как optional, напиши бэкфилл и проверь строки
- нужно ужесточить валидатор после бэкфилла — проведи меня по шагам
- составь миграцию на @convex-dev/migrations для существующих строк
Как установить convex-migrate
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-migrate -a claude-code2Вручную: положить файлы
~/.claude/skills/convex-migrate/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/convex-migrate/
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-migrate -a codex2Вручную: положить файлы
.agents/skills/convex-migrate/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-migrate -a cursor2Вручную: положить файлы
.cursor/skills/convex-migrate/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install convex/agent-skills convex-migrate2Вручную: положить файлы
.github/skills/convex-migrate/SKILL.md1Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-migrate -a gemini-cli2Командой платформы
gemini skills install https://github.com/convex/agent-skills --path skills/convex-migrateВручную: положить файлы
.devin/skills/convex-migrate/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add convex/agent-skills --skill convex-migrate -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о convex-migrate
Как установить convex-migrate в Claude?
Выполни npx skills add convex/agent-skills --skill convex-migrate -a claude-code. Скилл окажется в ~/.claude/skills/convex-migrate/SKILL.md.
Что делает convex-migrate?
Ведёт агента по миграции схемы и бэкфиллу данных в развёрнутом приложении Convex с помощью @convex-dev/migrations.
Почему нельзя сразу сделать поле обязательным?
Валидатор отклонит существующие строки, и живое приложение сломается. Сначала бэкфилл, потом ужесточение.
Исходный текст
SKILL.md · Apache-2.0
--- name: convex-migrate description: "Migrate schema + backfill data on a deployed Convex app using @convex-dev/migrations." --- <!-- GENERATED from convex-agents content/capabilities/migrate.json — do not edit by hand. --> # Migrate the schema / data on a live app Change a deployed schema without breaking existing data: stage the schema change, install @convex-dev/migrations, write a backfill that makes old rows valid, run it, and verify before tightening the validator. ## Workflow 1. Make the new field optional first (so deploy doesn't reject existing rows). 2. Install @convex-dev/migrations; write a migration that backfills/transforms existing rows. 3. Run the migration; verify all rows are valid. 4. Tighten the validator (make the field required) once the backfill is complete. ## Rules - Never tighten a validator before the backfill completes — it rejects existing rows and breaks the live app. - Add new fields as optional first, migrate, then require. - Verify row counts before and after.
© convex · Apache-2.0 · convex/agent-skills