Versioning approach
GraphRAG follows semantic versioning with some specific considerations:CLI
Conforms to standard semver
API
Conforms to standard semver
settings.yaml
Changes result in minor version bump
Data model
Conforms to standard semver
Internals
May change without semver compliance
General upgrade process
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
Before v3 (fnllm-based):After v3 (LiteLLM-based):
Rate limiting
Rate limiting
Before v3:After v3:
Vector store configuration
Vector store configuration
Before v3:After v3:
Removed features
Removed features
The following configuration blocks have been removed:
Migration steps
Run migration notebook
Navigate to the migration notebook and execute all cells:This transforms your existing tables to the v3 format.
Restore customizations
Manually copy over your custom settings:
- API keys from
.env - Model names
- Custom prompts
- Rate limits based on your quota
- Provider-specific settings
Update API calls (if using Python API)
Remove any
multi_*_search calls and replace with single search methods.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:| Old Name (v1) | New Name (v2) |
|---|---|
create_final_entities | entities |
create_final_nodes | nodes |
create_final_communities | communities |
create_final_community_reports | community_reports |
create_final_text_units | text_units |
create_final_relationships | relationships |
create_final_documents | documents |
Migration steps
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
v1 requires a vector store for embeddings.New configuration:Default uses local LanceDB. For production, consider Azure AI Search.
Data model updates
Data model updates
ID fields:
- 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
v1 added embeddings for DRIFT search and base RAG:
entity_descriptionembeddingscommunity_full_contentembeddingstext_unit_textembeddings
Deprecated timestamp paths
Deprecated timestamp paths
Before v1:After v1:
Migration steps
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:settings.yaml
Track your version
Add version info to your project:settings.yaml
Read release notes
Before upgrading, review:- GitHub Releases
- Breaking Changes
- Version-specific migration notebooks
Troubleshooting
Migration notebook fails
Migration notebook fails
Possible causes:
- 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
Solution:
- 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
Common issues:
- 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
v3 specific:Update all import statements to use single search methods.
Version compatibility matrix
| GraphRAG Version | Python Version | Key Features | Data Model Version |
|---|---|---|---|
| 3.x | ≥3.10 | LiteLLM, simplified config | v3 |
| 2.x | ≥3.10 | Renamed tables | v2 |
| 1.x | ≥3.10 | Vector stores, streamlined model | v1 |
| <1.0 | ≥3.10 | Pre-release | v0 |
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
Next steps
Configuration
Learn about all config options
Best practices
Optimize your implementation
CLI usage
Master the command-line interface
Python API
Use GraphRAG programmatically