Why this change is needed:
E2E tests were failing with TypeError because they used non-existent
parameters kv_storage_cls_kwargs, graph_storage_cls_kwargs, and
doc_status_storage_cls_kwargs. These parameters do not exist in
LightRAG's __init__ method.
How it solves it:
Removed the three non-existent parameters from all LightRAG initializations
in test_e2e_multi_instance.py:
- test_legacy_migration_postgres
- test_multi_instance_postgres (both instances A and B)
PostgreSQL storage classes (PGKVStorage, PGGraphStorage, PGDocStatusStorage)
use ClientManager which reads configuration from environment variables
(POSTGRES_HOST, POSTGRES_PORT, etc.) that are already set in the E2E
workflow, so no additional kwargs are needed.
Impact:
- Fixes TypeError on LightRAG initialization
- E2E tests can now properly instantiate with PostgreSQL storages
- Configuration still works via environment variables
Testing:
Next E2E run should successfully initialize LightRAG instances
and proceed to actual migration/multi-instance testing.
Why this change is needed:
Complete E2E test coverage for vector model isolation feature requires
testing legacy data migration for both PostgreSQL and Qdrant backends.
Previously only PostgreSQL migration was tested.
How it solves it:
- Add test_legacy_migration_qdrant() function to test automatic migration
from legacy collection (no model suffix) to model-suffixed collection
- Test creates legacy "lightrag_vdb_chunks" collection with 1536d vectors
- Initializes LightRAG with model_name="text-embedding-ada-002"
- Verifies automatic migration to "lightrag_vdb_chunks_text_embedding_ada_002_1536d"
- Validates vector count, dimension, and collection existence
Impact:
- Ensures Qdrant migration works correctly in real scenarios
- Provides parity with PostgreSQL E2E test coverage
- Will be automatically run in CI via -k "qdrant" filter
Testing:
- Test follows same pattern as test_legacy_migration_postgres
- Uses complete LightRAG initialization with mock LLM and embedding
- Includes proper cleanup via qdrant_cleanup fixture
- Syntax validated with python3 -m py_compile