feat: Add versioning support to Milvus online store by makinzm · Pull Request #6330 · feast-dev/feast
What this PR does / why we need it:
Adds feature view versioning support to the Milvus online store. When enable_online_feature_view_versioning is enabled in the registry config, the Milvus collection name now includes a version suffix (e.g. project_driver_stats_v2), allowing version-qualified feature references (e.g. driver_stats@v2:trips_today) to resolve to the correct versioned data.
Changes:
- Updated
_table_id()inmilvus.pyto acceptenable_versioningand delegate to the sharedcompute_table_id()helper (same pattern as SQLite, Redis, PostgreSQL, etc.) - Updated all 5 call sites of
_table_idto passconfig.registry.enable_online_feature_view_versioning - Added
MilvusOnlineStoreto the supported types list in_check_versioned_read_support()so versioned reads no longer raiseVersionedOnlineReadNotSupported - Added unit tests covering versioned/non-versioned table name generation and versioned read support
Which issue(s) this PR fixes:
Fixes #6177
Checks
- I've made sure the tests are passing.
- My commits are signed off (
git commit -s) - My PR title follows conventional commits format
Testing Strategy
- Unit tests
Misc
Implementation follows the existing pattern from sqlite.py and dynamodb.py. The compute_table_id() helper in helpers.py handles the version suffix logic, so no additional logic was needed in the Milvus store itself.