Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #88
This raised some interesting problems with uniqueness. Django has two ways of specifying uniqueness constraints, unique_together (older) and UniqueConstraint (newer, preferred). However, both create a btree index over all the fields, which is the cause of the issues mentioned in #88. I could not find a way to force them to use a different index.
I believe in the current implementation it is safe to simply remove the constraint entirely.
VersionMetadata
andAssetMetadata
are always created like this:This will fetch the existing
VersionMetadata
if it already exists, and given thatVersionMetadata
are immutable, a duplicateVersionMetadata
should never be created.I added
HashIndex
es to replace the btree indexes provided from theunique_together
, so lookups should still be performant.