Migrate to Qdrant
The Qdrant Migration Tool is a CLI that moves your vectors, metadata, and sparse embeddings from other vector databases into Qdrant. It runs as a Docker container, streams data in batches, and can resume interrupted migrations.
docker pull registry.cloud.qdrant.io/library/qdrant-migration
Supported Sources
| Source | CLI Subcommand | Auto-Creates Collection? |
|---|---|---|
| Pinecone | pinecone | Yes |
| Weaviate | weaviate | No (must pre-create) |
| Milvus | milvus | Yes |
| Elasticsearch | elasticsearch | Yes |
| OpenSearch | opensearch | Yes |
| pgvector | pg | Yes |
| S3 Vectors | s3 | Yes |
| Chroma | chroma | Yes |
The tool also supports Redis, MongoDB, FAISS, Apache Solr, and Qdrant-to-Qdrant migrations.
Not seeing your current vector store? Open an issue on GitHub and let us know!
General Advice
Run the tool close to your databases. Direct connectivity between source and target is not required — the tool streams through the machine it runs on. For best performance, use a machine with low latency to both.
Use
--net=hostfor local instances. If either database runs on the host machine, the container needs host networking to reachlocalhost.The tool resumes by default. Migration progress is tracked in a
_migration_offsetscollection in Qdrant. If a migration is interrupted, re-running the same command picks up where it left off. Use--migration.restartto force a fresh start.Batch size is tunable. The default batch size is 50. For large migrations, increase it with
--migration.batch-size(e.g., 256 or 512) to improve throughput.
Universal CLI Options
These flags apply to all source types:
| Flag | Default | Description |
|---|---|---|
--migration.batch-size | 50 | Points per upsert batch |
--migration.restart | false | Ignore saved progress, start fresh |
--migration.create-collection | true | Auto-create target collection |
--migration.batch-delay | 0 | Milliseconds between batches |
--migration.offsets-collection | _migration_offsets | Collection used to track migration progress |
--debug / --trace | — | Verbose logging |
--skip-tls-verification | false | Skip TLS certificate verification |
After Migration
Once your data is in Qdrant, verify that everything arrived correctly:
- Migration Verification Guide — a structured framework covering data integrity checks and search quality validation.
- Keeping Postgres in Sync — if you’re running Postgres alongside Qdrant, learn how to keep them in sync.
