Opened 2 days ago

Last modified 31 hours ago

#36592 closed New feature

Incorrect warning when specifying a UniqueConstraint with SQLite and nulls_distinct=True — at Initial Version

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

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 (0)

Note: See TracTickets for help on using tickets.
Back to Top