Convex Migrate

by get-convex2cfe645c87f9No license63 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 6 days ago

Migrate schema + backfill data on a deployed Convex app using @convex-dev/migrations.

AI-generated overview

Guides staged schema changes and data backfills on a deployed Convex app using @convex-dev/migrations.

What it does
This skill provides a workflow for changing a deployed Convex schema without breaking existing data. It covers making a new field optional first, installing @convex-dev/migrations, writing a backfill that transforms existing rows, running the migration, verifying row validity and counts, and only then tightening the validator. It is instruction-only and produces no files or scripts.
When to use it
Use it when a live Convex app needs a schema change and existing rows must be migrated to satisfy the new schema. It is meant for staged, non-breaking deployments where validators are tightened only after backfill verification.
Requirements
Requires a deployed Convex app and the @convex-dev/migrations package. Ships no scripts; instructions only.
<!-- 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.

Source and attribution

Source:get-convex/agent-skillsinskills/convex-migrateat commit2cfe645

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal