Opened 2 months ago
Last modified 2 months 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 months 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 months ago
| Description: | modified (diff) |
|---|