convex-migration-helper

Implement widen-migrate-narrow schema migrations for Convex applications.

Updated Apr 12, 2026
One-click install
npx skills add https://github.com/elcokiin/peluqueria --skill convex-migration-helper-elcokiin
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: convex-migration-helper
Source: https://github.com/elcokiin/peluqueria/tree/main/packages/backend/.agents/skills/convex-migration-helper
Command: npx skills add https://github.com/elcokiin/peluqueria --skill convex-migration-helper-elcokiin

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @convex-dev/migrations, and includes references (resource) components.

What problem does it solve?

This skill solves the challenge of performing breaking schema changes in Convex without downtime, ensuring data integrity while transitioning between old and new data structures.

Core Features & Use Cases

  • Widen-Migrate-Narrow Workflow: Orchestrates the multi-deploy process required for safe schema evolution.
  • Automated Batching: Leverages the @convex-dev/migrations component to handle large datasets without hitting transaction limits.
  • Use Case: Use this when you need to rename a field, change a field type, or split nested data into a new table while your application remains live and functional.

Quick Start

Use the convex-migration-helper skill to plan a migration for adding a required field to the users table.

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 schema changes in Convex without downtime?

To handle breaking schema changes in Convex without downtime, you use a widen-migrate-narrow deployment pattern. This workflow orchestrates multiple deployments to safely transition data structures while your application remains live and functional.

What is the widen-migrate-narrow pattern for database migrations?

The widen-migrate-narrow pattern is a multi-deploy workflow that safely evolves Convex schemas. It first widens the schema to accept both old and new formats, migrates the existing data, and then narrows the schema to enforce the new structure exclusively.

How do I split nested data into a new table in Convex while the app is live?

To split nested data into a new Convex table while the app is live, you use batched and resumable data transformations. This approach processes large datasets in batches to avoid transaction limits while maintaining data integrity during the live operation.

Do I need the @convex-dev/migrations component to run schema migrations?

Yes, you need the @convex-dev/migrations component to execute these schema migrations. It provides the batched, resumable, and verifiable data transformation capabilities required to handle large datasets without hitting transaction limits.

What's the best way to backfill data when modifying field types in Convex?

The best way to backfill data when modifying field types in Convex is using automated batching via the migrations component. This handles large datasets safely without hitting transaction limits, ensuring data transformations are resumable and verifiable throughout the process.

Why do my Convex database migrations hit transaction limits?

Convex database migrations hit transaction limits when processing large datasets in a single operation. Utilizing an automated batching component resolves this by breaking the data transformations into smaller, resumable batches that stay within operational limits.