Skip to main content
CyborgDB Migrate is a tool for migrating vector embeddings and metadata from popular vector databases into CyborgDB. It handles the full migration lifecycle: connect to source, batch-extract vectors, upsert into an encrypted CyborgDB index, checkpoint progress, and verify results.
CyborgDB Migrate requires a running CyborgDB Service instance. See the Python Quickstart or Docker Quickstart to get one running first.

Supported Sources

To install support for all sources at once:

Two Modes of Operation

Interactive TUI

Step-by-step guided wizardLaunch the interactive terminal UI — select your source, enter credentials, configure your destination, and watch the migration in real time.

Headless CLI

Scriptable & CI/CD friendlyRun non-interactively using a TOML config file. Supports resuming interrupted migrations.

Quickstart: Interactive TUI

1

Install cyborgdb-migrate

Install the package with the extra for your source database:
2

Launch the wizard

The TUI will walk you through:
  1. Selecting your source database type
  2. Entering source credentials
  3. Configuring your CyborgDB destination (host, API key, index name)
  4. Live progress display with per-batch stats
When complete, a spot-check verification is automatically run to confirm data integrity.

Quickstart: Headless CLI

1

Install cyborgdb-migrate

2

Create a config file

Create a migration.toml file. Environment variable interpolation (${VAR}) is supported:
See example-config.toml for all available options.
3

Run the migration

If the migration is interrupted, resume from where it left off:

CLI Reference


How It Works

  • Double-buffered pipeline: one thread extracts the next batch while the previous batch’s upsert is in flight, maximising throughput.
  • Checkpointing: progress is saved to disk every N batches so interrupted migrations can be resumed with --resume.
  • Retry with backoff: upserts retry with exponential backoff (1s → 2s → 4s) before failing a batch.
  • Spot-check verification: after migration, a random sample of vectors is fetched back from CyborgDB and compared to the source (within atol=1e-6) to confirm data integrity. Exit code 2 indicates migration completed but spot-check failed.

Source-Specific Notes

Set namespace in [source] to migrate a specific Pinecone namespace. Omit to migrate the default namespace.
Set namespace in [source] to migrate a specific partition.
Ensure your Weaviate instance has the text2vec module disabled or that raw vectors are accessible, as cyborgdb-migrate reads pre-computed vectors directly.