Why this change is needed:
CI reported 5 lint errors that needed to be fixed:
- Unused import of 'patch' in test_dimension_mismatch.py
- Unnecessary f-string prefixes without placeholders
- Bare except clauses without exception type
How it solves it:
- Removed unused 'patch' import (auto-fixed by ruff)
- Removed unnecessary f-string prefixes (auto-fixed by ruff)
- Changed bare 'except:' to 'except Exception:' for proper exception handling
Impact:
- Code now passes all ruff lint checks
- Better exception handling practices (doesn't catch SystemExit/KeyboardInterrupt)
- Cleaner, more maintainable test code
Testing:
Verified with: uv run ruff check tests/
Result: All checks passed!
This update introduces checks for vector dimension compatibility before migrating legacy data in both PostgreSQL and Qdrant storage implementations. If a dimension mismatch is detected, the migration is skipped to prevent data loss, and a new empty table or collection is created for the new embedding model.
Key changes include:
- Added dimension checks in `PGVectorStorage` and `QdrantVectorDBStorage` classes.
- Enhanced logging to inform users about dimension mismatches and the creation of new storage.
- Updated E2E tests to validate the new behavior, ensuring legacy data is preserved and new structures are created correctly.
Impact:
- Prevents potential data corruption during migrations with mismatched dimensions.
- Improves user experience by providing clear logging and maintaining legacy data integrity.
Testing:
- New tests confirm that the system behaves as expected when encountering dimension mismatches.