Skip to content

mixpeek/mvs-migrate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mvs-migrate

Migrate vectors from any major vector database to MVS (Mixpeek Vector Store).

Supported Sources (13)

Source Install Extra Status
Pinecone pip install mvs-migrate[pinecone] Full
Qdrant pip install mvs-migrate[qdrant] Full
Weaviate pip install mvs-migrate[weaviate] Full
Milvus / Zilliz pip install mvs-migrate[milvus] Full
Elasticsearch pip install mvs-migrate[elasticsearch] Full
OpenSearch pip install mvs-migrate[opensearch] Full
ChromaDB pip install mvs-migrate[chromadb] Full
pgvector pip install mvs-migrate[pgvector] Full
LanceDB pip install mvs-migrate[lancedb] Full
Turbopuffer pip install mvs-migrate[turbopuffer] Full
MongoDB Atlas pip install mvs-migrate[mongodb] Full
Redis pip install mvs-migrate[redis] Full
Apache Solr pip install mvs-migrate[solr] Full

Quick Start

pip install mvs-migrate[pinecone]

mvs-migrate transfer \
  --source pinecone \
  --source-config '{"api_key": "...", "index": "my-index"}' \
  --mvs-api-key "mxp_..." \
  --mvs-namespace "my-namespace"

Features

  • Batch transfer with progress bar, checkpointing, and resume
  • Pre-migration confidence report — schema discovery, count, dimensions
  • Post-migration validation — count parity, vector parity, search parity
  • Cost comparison — source vs MVS monthly pricing estimate
  • Dry-run mode — preview what would be migrated without writing
  • All vector types — dense, sparse, multi-vector, named vectors

CLI Commands

mvs-migrate sources          # List available source connectors
mvs-migrate transfer --help  # Full migration with validation
mvs-migrate port --help      # Code refactoring (BYOC Claude)

Evaluation Suite

Run the offline evaluation suite to verify migration correctness:

python -m evaluation.run_eval --all

This tests serialization and field mapping against 13 sources using a golden dataset with edge cases (unicode, nulls, zero vectors, deeply nested metadata).

Per-adapter test suites

Each adapter has three test layers inside evaluation/:

Layer Directory What it tests Needs API key?
Unit tests crewai-tests/ Patched code with mocked httpx — verifies correct MVS API calls No
E2E tests test_port_crewai_e2e.py All 9 ChromaDB operations against real MVS API Yes
Port tests test_port_crewai.py Scanner/patcher/verifier pipeline against real crewAI repo No

Run the ChromaDB adapter unit tests (62 tests, no network):

# Requires crewAI installed: pip install crewai (from a crewAI checkout)
cd evaluation/crewai-tests
pytest test_client.py test_utils.py test_knowledge_storage.py -v

Run the E2E tests against real MVS:

export MIXPEEK_API_KEY="mxp_..."
pytest evaluation/test_port_crewai_e2e.py -v

Abstraction Factory

See packages/connectors/vector-stores/ for the unified VectorStore interface that wraps both source DBs and MVS behind the same API. Users bring their own keys:

from mixpeek_vector_stores import create_vector_store

# Same interface for any backend
source = create_vector_store("pinecone", api_key="...", index="my-index")
target = create_vector_store("mvs", api_key="mxp_...", namespace="my-ns")

# Read from source, write to target
records = source.get(["doc-1", "doc-2"])
target.upsert(records)

Development

pip install -e '.[dev]'
pytest

License

Apache-2.0

About

Migrate vectors from any major vector database to Mixpeek MVS - supports 13 sources with batch transfer, validation, and cost comparison

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages