Versioning approach
GraphRAG follows semantic versioning with some specific considerations:CLI
API
settings.yaml
Data model
Internals
General upgrade process
Back up your project
settings.yamlprompts/directory.envfile
Upgrade GraphRAG
Check version
Update configuration
Run migration (major versions only)
Migration to v3
GraphRAG v3 streamlined the core library by removing rarely-used features and simplifying configuration.Overview
Migration notebook:docs/examples_notebooks/index_migration_to_v3.ipynb
Main goals:
- Slim down maintenance overhead
- Remove out-of-scope features
- Simplify configuration model
Data model changes
The primary breaking change affects thetext_units table:
Before v3:
API changes
Removed multi-search variants: Removed (no longer available):Configuration changes
Model type changes
Model type changes
Rate limiting
Rate limiting
Vector store configuration
Vector store configuration
Removed features
Removed features
Migration steps
Run migration notebook
Update configuration
Restore customizations
- API keys from
.env - Model names
- Custom prompts
- Rate limits based on your quota
- Provider-specific settings
Update API calls (if using Python API)
multi_*_search calls and replace with single search methods.Test the migration
Migration to v2
GraphRAG v2 renamed index tables for clarity.Overview
Migration notebook:docs/examples_notebooks/index_migration_to_v2.ipynb
Table renames
All tables were renamed to simply describe their contents:Migration steps
Run migration notebook
Update configuration
Verify table names
Migration to v1
GraphRAG v1 introduced vector stores and streamlined the data model.Overview
Migration notebook:docs/examples_notebooks/index_migration_to_v1.ipynb
Major changes
Vector store requirement
Vector store requirement
Data model updates
Data model updates
- Consistent use of
idandhuman_readable_id - Integer IDs stored as ints (not strings)
document.raw_content→document.textentity.name→entity.titlerelationship.rank→relationship.combined_degree
relationship.source_degreerelationship.target_degree- All embedding columns (now in vector store)
idnow uses proper UUIDcommunityandhuman_readable_idretain short IDs
New required embeddings
New required embeddings
entity_descriptionembeddingscommunity_full_contentembeddingstext_unit_textembeddings
Deprecated timestamp paths
Deprecated timestamp paths
Migration steps
Update configuration
vector_store configuration block.Remove timestamp paths
settings.yaml or environment variables:Run migration notebook
Re-index with vector store
Best practices
Always backup before upgrading
Test on a copy first
Use cache to avoid re-indexing costs
GraphRAG’s cache prevents redundant LLM calls:Track your version
Add version info to your project:Read release notes
Before upgrading, review:- GitHub Releases
- Breaking Changes
- Version-specific migration notebooks
Troubleshooting
Migration notebook fails
Migration notebook fails
- Corrupted parquet files
- Missing columns
- Incompatible data types
- Check notebook output for specific error
- Verify parquet files can be read:
pd.read_parquet("output/entities.parquet") - Re-index from scratch if data is corrupted
Configuration validation errors
Configuration validation errors
- Run dry-run to identify issues:
- Compare your config to the latest template
- Check for removed or renamed settings
Query fails after migration
Query fails after migration
- Old parquet file names
- Missing vector store setup
- Incompatible data schema
- Run the appropriate migration notebook
- Verify vector store configuration
- Re-index if needed
Python API import errors
Python API import errors
Version compatibility matrix
Getting help
If you encounter issues during migration:- Check the breaking changes document
- Review GitHub Issues
- Ask in GitHub Discussions
- Consult version-specific migration notebooks