Skip to content

CLI tools for Qdrant vector database - export, import, sync, stats

License

Notifications You must be signed in to change notification settings

conduit-ui/qdrant-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qdrant Tools

CLI tools for Qdrant vector database operations - export, import, sync, and management.

Installation

composer global require conduit-ui/qdrant-tools

Or clone and install locally:

git clone https://github.com/conduit-ui/qdrant-tools.git
cd qdrant-tools
composer install

Configuration

Copy .env.example to .env and configure your Qdrant connections:

cp .env.example .env

Environment variables:

Variable Default Description
QDRANT_HOST localhost Default Qdrant host
QDRANT_PORT 6333 Default Qdrant port
QDRANT_API_KEY API key for authentication
QDRANT_SECURE false Use HTTPS
QDRANT_REMOTE_HOST Remote instance for sync
QDRANT_REMOTE_PORT 6333 Remote port
QDRANT_REMOTE_API_KEY Remote API key
QDRANT_REMOTE_SECURE false Remote uses HTTPS
QDRANT_BATCH_SIZE 100 Default batch size
QDRANT_TIMEOUT 30 HTTP timeout in seconds

Commands

List Collections

./qdrant qdrant:collections
./qdrant qdrant:collections --host=remote.example.com --port=6333
./qdrant qdrant:collections --json

Collection Stats

./qdrant qdrant:stats knowledge
./qdrant qdrant:stats knowledge --json

Export Collection

Export all points from a collection to a JSON file:

./qdrant qdrant:export knowledge
./qdrant qdrant:export knowledge --output=backup.json
./qdrant qdrant:export knowledge --with-vectors
./qdrant qdrant:export knowledge --batch-size=200
./qdrant qdrant:export knowledge --filter='{"must":[{"key":"status","match":{"value":"active"}}]}'

Import Collection

Import points from a JSON file:

./qdrant qdrant:import backup.json
./qdrant qdrant:import backup.json --collection=new_collection
./qdrant qdrant:import backup.json --create --vector-size=384
./qdrant qdrant:import backup.json --batch-size=200

Note: Import requires the export to include vectors (--with-vectors during export).

Sync Collections

Sync a collection between two Qdrant instances:

# Using config (local -> remote)
./qdrant qdrant:sync knowledge --create

# Explicit hosts
./qdrant qdrant:sync knowledge \
  --source-host=localhost --source-port=6333 \
  --dest-host=odin.example.com --dest-port=6333 \
  --dest-api-key=your-api-key --dest-secure \
  --create

# Dry run to preview
./qdrant qdrant:sync knowledge --dry-run

# Selective sync with filter
./qdrant qdrant:sync knowledge --filter='{"must":[{"key":"category","match":{"value":"important"}}]}'

Delete Points

Delete points by IDs or filter:

# By IDs
./qdrant qdrant:delete knowledge --ids=id1,id2,id3

# By filter
./qdrant qdrant:delete knowledge --filter='{"must":[{"key":"status","match":{"value":"archived"}}]}'

# Force delete (skip confirmation)
./qdrant qdrant:delete knowledge --ids=id1 --force

Examples

Migrate Local to Production

# Export from local with vectors
./qdrant qdrant:export knowledge --with-vectors --output=knowledge-backup.json

# Import to production
./qdrant qdrant:import knowledge-backup.json \
  --host=production.qdrant.cloud \
  --port=6333 \
  --api-key=$QDRANT_CLOUD_API_KEY \
  --secure \
  --create

Direct Sync (Local to Remote)

./qdrant qdrant:sync knowledge \
  --source-host=localhost \
  --dest-host=odin.partridge.rocks \
  --dest-port=6333 \
  --create

Backup and Restore

# Backup
./qdrant qdrant:export mydata --with-vectors --output=mydata-$(date +%Y%m%d).json

# Restore to new collection
./qdrant qdrant:import mydata-20250110.json --collection=mydata_restored --create

Development

# Install dependencies
composer install

# Run tests
composer test

# Format code
composer format

License

MIT License - see LICENSE for details.

About

CLI tools for Qdrant vector database - export, import, sync, stats

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages