Use NULLS NOT DISTINCT on unique constraints
Closes #1892 (closed)
- Classification: 3 constraints merged into one, to require a unique MLClass per worker version and worker run
- TranscriptionEntity: 3 constraints merged into one, to require unique transcription entities per transcription.
⚠️ This requires rebuilding a 100GB index in prod - Right: 2 constraints merged into one, to require a unique Right per user or group on each target
- CorpusWorkerVersion: 4 constraints merged into one, to require unique worker version/model version/worker configuration combos per corpus
- Worker: 2 constraints merged into one, to require unique slugs per repository
- WorkerActivity: 4 constraints merged into one, to require unique worker version/model version/worker configuration combos per element
- WorkerRun: 4 constraints merged into one, to require unique worker version/model version/worker configuration combos per process
If the migration crashes after 30 minutes, we cannot avoid this timeout, and the queries are probably still running on the database. We had that issue when we had migrated from integer IDs to UUIDs on TranscriptionEntity: https://redmine.teklia.com/issues/8169#note-11