Skip to content
A Source emits Source Items. A Process Pipeline performs destination work.
sourceprocessdestination

Data migrationsDefined in TypeScript

Migrate data between APIs, databases, files, and CMSes. Define the work in TypeScript and Effect. Keep migration progress between runs and resume where you left off.

pnpm add migrate-sdk effect

01 / define

Your source. Your mapping.

Connect source data, destination calls, and saved results in one migration definition.

Migration overview

Emit typed source items.

A Source declares the payload schema, stable identity, and version of each item it emits.

const  = .({  : .,  : .,  : .,});​const  = .({  ...,  : "./authors.csv",  : ,  : .({ : "id", : "author-id@v1" }),});

02 / run

Run migrations your way.

Choose what runs.
We’ll work out the order.

Choose migrations individually, by group, or all at once. Declared requirements determine what runs first.

Migration selection
Requirements included automatically

Content group

Routing group

3 migrationsAuthors → Images → Articles
migrate run articles --with-dependencies --plan

03 / deploy

Your code. Your infrastructure.

Start in your application. Add a server for remote access, or Workflow SDK for durable execution.

Your infrastructure
Your codemigration.tsTypeScript + Effect
Your clients
CLITUIYour app
Your processApp · cron · webhook
Migration serverLocal or remote
or
Workflow SDKDurable execution
Start · stop · observe
Migration storeSaved progress, results, and locks
File / SQL / Custom

Use the SDK directly in your application. A server is optional.

Run from code

Built with Effect.

Typed errors, schema validation, and retries with exponential backoff are part of your TypeScript code.

Effect platformNode.js · Bun · Deno · Browser ↗

Runtime support depends on the clients, sources, and stores you use.

Terraform-style state. For content and data.

Keep a record of what ran and what it created. Store that record in your infrastructure so the next run can use it, wherever it starts.

Choose a migration store

Get started with Migrate SDK.

Define a migration, or work through a complete recipe.