◐ Shell
clean mode source ↗

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() in milvus.py to accept enable_versioning and delegate to the shared compute_table_id() helper (same pattern as SQLite, Redis, PostgreSQL, etc.)
  • Updated all 5 call sites of _table_id to pass config.registry.enable_online_feature_view_versioning
  • Added MilvusOnlineStore to the supported types list in _check_versioned_read_support() so versioned reads no longer raise VersionedOnlineReadNotSupported
  • 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.


Open in Devin Review