summaryrefslogtreecommitdiff
path: root/django/db/models/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/base.py')
-rw-r--r--django/db/models/base.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 0711ec0d61..3e9b847b37 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -2442,6 +2442,29 @@ class Model(AltersData, metaclass=ModelBase):
id="models.W044",
)
)
+ if not (
+ connection.features.supports_nulls_distinct_unique_constraints
+ or (
+ "supports_nulls_distinct_unique_constraints"
+ in cls._meta.required_db_features
+ )
+ ) and any(
+ isinstance(constraint, UniqueConstraint)
+ and constraint.nulls_distinct is not None
+ for constraint in cls._meta.constraints
+ ):
+ errors.append(
+ checks.Warning(
+ "%s does not support unique constraints with "
+ "nulls distinct." % connection.display_name,
+ hint=(
+ "A constraint won't be created. Silence this "
+ "warning if you don't care about it."
+ ),
+ obj=cls,
+ id="models.W047",
+ )
+ )
fields = set(
chain.from_iterable(
(*constraint.fields, *constraint.include)