A command-line tool for backing up Qdrant vector database collections, inspired by mongodump. Create and download snapshots of your Qdrant collections with ease.
- Single or All Collections: Backup a specific collection or all collections at once
- Automatic Snapshots: Creates Qdrant snapshots and downloads them automatically
- Progress Indicators: Real-time progress feedback during backup operations
- Timestamped Backups: Optional timestamp-based directory organization
- Secure Authentication: Supports API key authentication
- Robust Error Handling: Clear error messages for common issues
- URL Encoding: Handles collection names with special characters safely
- Zero Dependencies: Self-contained binary (after compilation)
- Rust 1.70+ (for building from source)
- Qdrant server (local or remote)
- Network access to your Qdrant instance
git clone <repository-url>
cd qdrant-dump
cargo build --releaseThe binary will be available at ./target/release/qdrant-dump.
Install and run from anywhere:
cargo install --path .
export PATH="$HOME/.cargo/bin:$PATH"
qdrant-dump --help Backup a single collection:
qdrant-dump \
--url http://localhost:6333 \
--collection product_embeddings \
--out ./backupsBackup all collections with timestamp:
qdrant-dump \
--url http://localhost:6333 \
--collection all \
--out ./backups \
--timestampBackup from remote Qdrant Cloud with API key:
qdrant-dump \
--url https://your-cluster.qdrant.io \
--api-key your-api-key \
--collection all \
--out ./backups \
--timestampUsage: qdrant-dump [OPTIONS] --url <URL>
Options:
-u, --url <URL> Qdrant server URL (e.g., https://your-qdrant-host.com)
-k, --api-key <API_KEY> API key for Qdrant (if needed) [default: ]
-c, --collection <COLLECTION>
Collection to back up, or "all" for all collections
[default: all]
-o, --out <OUT> Directory where backups will be saved [default: ./backups]
-t, --timestamp Add timestamp to backup folder
-h, --help Print help
- Connects to your Qdrant instance
- Creates a snapshot for the specified collection(s)
- Downloads the snapshot file(s) to your local filesystem
- Saves them with descriptive filenames:
{collection_name}_{snapshot_name}.snapshot
The snapshot files are native Qdrant snapshot format and can be restored using Qdrant's restore functionality.
- Start Qdrant locally:
docker run -d -p 6333:6333 --name qdrant qdrant/qdrant- Create test collections :
chmod +x quick_test_setup.sh
./quick_test_setup.sh- Run a test backup:
cargo build --release
./target/release/qdrant-dump \
--url http://localhost:6333 \
--collection all \
--out ./backups \
--timestampSee TESTING.md for comprehensive testing scenarios.
Backups are saved as .snapshot files with the naming pattern:
{collection_name}_{snapshot_id}.snapshot
Example:
product_embeddings_product_embeddings-6070297544516242-2025-10-29-11-58-35.snapshot
When using --timestamp, files are organized in timestamped directories:
backups/
└── 20251029_125835/
├── product_embeddings_*.snapshot
├── user_profiles_*.snapshot
└── document_search_*.snapshot
To restore a snapshot, you can use Qdrant's REST API:
curl -X PUT "http://localhost:6333/collections/{collection_name}/snapshots/upload" \
-H "Content-Type: multipart/form-data" \
-F "snapshot=@/path/to/backup.snapshot"Or use Qdrant's web UI at http://localhost:6333/dashboard.
- Ensure Qdrant is running:
docker ps | grep qdrant - Check the URL:
http://localhost:6333(default) or your remote URL - Verify network connectivity
- Collection doesn't exist - verify with:
curl http://localhost:6333/collections - Check spelling of collection name
- Ensure you have read permissions
- Verify your API key is correct
- Check if your Qdrant instance requires authentication
- Ensure the API key has proper permissions
- URLs must include protocol:
http://orhttps:// - For localhost:
http://localhost:6333 - Trailing slashes are automatically handled
Potential features for future releases:
- Restore functionality (
qdrant-restore) - Snapshot cleanup option (delete after download)
- Compression support (gzip, zstd)
- Incremental backups
- Backup verification (checksums)
- Resume interrupted downloads
- Parallel collection dumping
- S3/cloud storage upload support
- Configuration file support
- Verbose logging mode
- Qdrant - Vector similarity search engine
- qdrant-client - Official Rust client