Opened 2 days ago
Last modified 31 hours ago
#36592 closed New feature
Incorrect warning when specifying a UniqueConstraint with SQLite and nulls_distinct=False — at Version 2
Reported by: | Russell Owen | Owned by: | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 5.2 |
Severity: | Normal | Keywords: | SQLite UniqueConstraint |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I am trying to create a UniqueConstraint with nulls_distinct=False
. This will be used with sqlite for local use and tests, and postgresql for production.
When I migrate my sqlite database I get this warning:
SQLite does not support unique constraints with nulls distinct.
I suspect this is a bug, since I specified that nulls should not be distinct.
Note that I also get the same warning if I specify nulls_distinct=True
, but in that case I expect to see it.
Here is the simplest model I could come up with that shows the issue:
class SimpleModel(models.Model): field_a = models.IntegerField(null=True) field_b = models.IntegerField(null=True) class Meta: constraints = [ UniqueConstraint( name="simple_unique_constraint", fields=["field_a", "field_b"], nulls_distinct=False, ), ]
The full warning I see on migration is:
WARNINGS: dances.SimpleModel: (models.W047) SQLite does not support unique constraints with nulls distinct. HINT: A constraint won't be created. Silence this warning if you don't care about it.
and, as I said before, I get the same warning if I use nulls_distinct=True
(which is when I expect to see the warning).
Change History (2)
comment:1 by , 2 days ago
Summary: | Incorrect warning when specifying a UniqueConstraint with SQLite and nulls_distinct=True → Incorrect warning when specifying a UniqueConstraint with SQLite and nulls_distinct=False |
---|
comment:2 by , 2 days ago
Description: | modified (diff) |
---|