Skip to content

Commit 336995e

Browse files
committed
Error on unsupported unique constraint conditions
1 parent 79e421a commit 336995e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sql_server/pyodbc/schema.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414
Statement as DjStatement,
1515
Table,
1616
)
17-
from django.db.models import Index
17+
from django.db.models import Index, UniqueConstraint
1818
from django.db.models.fields import AutoField, BigAutoField
19+
from django.db.models.sql.where import AND
1920
from django.db.transaction import TransactionManagementError
2021
from django.utils.encoding import force_str
2122

@@ -970,3 +971,9 @@ def remove_field(self, model, field):
970971
for sql in list(self.deferred_sql):
971972
if isinstance(sql, Statement) and sql.references_column(model._meta.db_table, field.column):
972973
self.deferred_sql.remove(sql)
974+
975+
def add_constraint(self, model, constraint):
976+
if isinstance(constraint, UniqueConstraint) and constraint.condition and constraint.condition.connector != AND:
977+
raise NotImplementedError("The backend does not support %s conditions on unique constraint %s." %
978+
(constraint.condition.connector, constraint.name))
979+
super().add_constraint(model, constraint)

0 commit comments

Comments
 (0)