convex-migration-helper

Plan Convex schema migrations using widen-migrate-narrow workflows.

Updated Aug 27, 2026
One-click install
npx skills add https://github.com/MichaelFrieze/riffatlas --skill convex-migration-helper-michaelfrieze
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: convex-migration-helper
Source: https://github.com/MichaelFrieze/riffatlas/tree/main/.agents/skills/convex-migration-helper
Command: npx skills add https://github.com/MichaelFrieze/riffatlas --skill convex-migration-helper-michaelfrieze

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you perform breaking Convex schema and data changes without breaking deployments by using an online, widen-migrate-narrow workflow and verified, resumable migrations.

Core Features & Use Cases

  • Widen–Migrate–Narrow planning: Guides you through the required multi-deploy sequence so schema validation never blocks deployment.
  • Operationally safe migration strategy: Explains online migration constraints and how to handle both old and new data formats during the migration window.
  • Migration patterns and pitfalls: Provides reusable patterns for adding, deleting, and reshaping fields/tables, plus common mistakes to avoid (like making fields required too early).

Quick Start

Use the convex-migration-helper skill to plan a breaking Convex schema change by first widening the schema, then scheduling a backfill migration, and finally narrowing the schema once all documents are updated.

Frequently Asked Questions about convex-migration-helper

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle breaking Convex schema changes without downtime?

A widen-migrate-narrow workflow handles breaking Convex schema changes by widening the schema first, running a backfill migration, then narrowing the schema once all documents are updated.

What is the best way to add a required field to an existing Convex table?

Adding a required field to a Convex table requires widening the schema first to make the field optional, running a backfill migration to populate all existing documents, and finally narrowing the schema to enforce the required constraint.

How does the @convex-dev/migrations workflow handle large data backfills?

The @convex-dev/migrations workflow handles large data backfills through batched, resumable execution with dry runs. It includes a verification step to ensure all documents are migrated before completing the process.

Why does making a Convex field required too early break deployments?

Making a Convex field required too early breaks deployments because schema validation rejects existing documents that lack the new field, blocking deployment until all data is updated through a prior migration backfill.

Can I rename or delete fields in a Convex schema without breaking existing queries?

Renaming or deleting fields in a Convex schema requires an online migration strategy that handles both old and new data formats during the migration window, ensuring existing queries continue functioning until the final schema narrowing.

When do I need to use a dual format online migration for Convex?

You need a dual format online migration for Convex when applying breaking changes like changing field shapes, splitting or merging tables, or renaming fields, where both old and new data formats must coexist during the transition.