molt-fetch

Migrates bulk data from PostgreSQL, MySQL, Oracle, or MSSQL into CockroachDB using molt fetch.

2|1|Updated Mar 11, 2026
One-click install
npx skills add https://github.com/cockroachdb/cursor-plugin --skill molt-fetch-cockroachdb
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: molt-fetch
Source: https://github.com/cockroachdb/cursor-plugin/tree/main/skills/cockroachdb-onboarding-and-migrations/molt-fetch
Command: npx skills add https://github.com/cockroachdb/cursor-plugin --skill molt-fetch-cockroachdb

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Moving large datasets from legacy databases like PostgreSQL, MySQL, Oracle, or MSSQL into CockroachDB involves complex tooling choices, storage backend configuration, and failure recovery. This Skill guides you through running molt fetch correctly so bulk migrations complete reliably. ## Core Features & Use Cases - Storage Backend Configuration: Choose between S3/GCS/Azure bucket paths, direct copy, or local paths depending on your network topology and downtime tolerance. - Import Mode Selection: Use IMPORT INTO for maximum throughput with offline tables, or COPY FROM with --use-copy for zero-downtime online loads. - Failure Recovery & Resumption: Resume interrupted migrations using fetch IDs and continuation tokens instead of restarting from scratch. - Use Case: You need to migrate a production PostgreSQL database to CockroachDB without downtime. Use direct copy with --use-copy, filter to specific tables, then run molt verify afterward to confirm data integrity. ## Quick Start Ask the assistant to migrate the customers and orders tables from your PostgreSQL database to CockroachDB using molt fetch with an S3 bucket as intermediate storage.

Frequently Asked Questions about molt-fetch

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

FAQPage Schema
How do I migrate data from PostgreSQL to CockroachDB?▼

Use molt fetch with --source pointing to your PostgreSQL connection string and --target pointing to CockroachDB, plus a storage option like --bucket-path or --direct-copy. Add --table-handling drop-on-target-and-recreate on a fresh target to auto-create schemas.

How to migrate MySQL to CockroachDB with zero downtime?▼

Use molt fetch with --direct-copy and --use-copy, which loads data via COPY FROM so tables stay online during migration. Note that COPY mode cannot use gzip compression, so omit --compression or set it to none.

Does molt fetch support Oracle as a source database?▼

Yes, molt fetch supports Oracle, but the binary must be built with CGO_ENABLED=1 and the source_all tag. Oracle Instant Client must also be present in LD_LIBRARY_PATH on the machine running the migration.

How do I resume a failed molt fetch migration?▼

Run molt fetch tokens with your --fetch-id to list continuation tokens, then rerun molt fetch with the same --fetch-id and --non-interactive to resume failed tables. Continuation tokens are stored in the target's exceptions table.

Why does molt fetch fail with GTID-based replication not enabled?▼

This error occurs when the MySQL source lacks GTID mode. Enable gtid_mode=ON and enforce_gtid_consistency=ON on the source, or pass --ignore-replication-check to skip validation, though replication-dependent features will not work.

What is the difference between IMPORT INTO and COPY FROM in molt fetch?▼

IMPORT INTO is the default and offers the highest throughput but takes the table offline during loading. COPY FROM, enabled with --use-copy, keeps tables online for zero-downtime migrations but cannot use compression.