fix: make model metadata merging deterministic
HA
9h ago+250+250+012345678901234567890123456789-19-19-01234567890123456789
Fixes #7830 by preserving model registration order when combining metadata from multiple model bases. If separate metadata objects define the same table, the registry now raises a clear InvalidRequestError instead of silently selecting one definition.
Regression coverage verifies deterministic ordering through register(), ordering after a model is removed and re-registered, duplicate table detection, and preservation of convention-generated constraint names.
Testing:
uv run pytest tests/units/test_model.py tests/units/utils/test_migrations.py -q— 60 passed.- Ruff format/check, codespell, and Pyright passed for the changed files.
- The full unit suite on Windows reported 15,064 passed, 85 skipped, and 21 failures in platform-sensitive/unrelated tests (including symlink privilege limitations).