migration-helper

Plan and execute Convex schema and data migrations with staged updates and verification queries.

Updated Mar 7, 2026
One-click install
npx skills add https://github.com/jcdiv47/cool-paper --skill migration-helper-jcdiv47
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: migration-helper
Source: https://github.com/jcdiv47/cool-paper/tree/main/.agents/skills/convex-migration-helper
Command: npx skills add https://github.com/jcdiv47/cool-paper --skill migration-helper-jcdiv47

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps plan and execute Convex schema and data migrations safely to avoid data loss, downtime, and broken queries when changing tables, fields, or types.

Core Features & Use Cases

  • Safe Additive Changes: Guidance for adding optional fields, new tables, and indexes without requiring immediate migrations.
  • Breaking Change Patterns: Step-by-step patterns for adding required fields, changing field types, renaming fields, and migrating nested data into relational structures.
  • Operational Tools: Examples and patterns for batch processing, scheduled cron jobs, dual-write transitions, backfill internal mutations, and verification queries to maintain zero-downtime migrations.

Quick Start

Use the migration-helper to add a new field as optional, run a batch backfill internal mutation until all records are populated, verify migration completeness with a query, and then make the field required.

Frequently Asked Questions about migration-helper

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

FAQPage Schema
How do I migrate a Convex database schema without downtime?

You can migrate Convex schemas with zero downtime by applying staged additive schema updates, running batch backfills via internal mutations, and verifying migration completeness with queries before enforcing requirements.

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

The best way to add a required field in Convex is to first add it as optional, run a batch backfill internal mutation to populate all existing records, verify completeness, and then update the schema to make it required.

How do I split nested arrays into relational tables in Convex?

Splitting nested arrays into relational tables in Convex requires a breaking change pattern that uses dual-write transitions and batch backfills to migrate nested data into new relational structures without losing records.

Can I use cron jobs to process incremental Convex data backfills?

Yes, you can use cron-driven incremental processing to run batch backfills for Convex schema migrations, allowing scheduled internal mutations to safely populate large datasets over time without downtime.

How do I safely rename a field in a Convex production database?

Renaming a field in a Convex production database requires a staged dual-write transition pattern where you write to both old and new fields, backfill existing data, update queries, and then remove the old field.