diff options
Diffstat (limited to 'django/db/backends/sqlite3')
| -rw-r--r-- | django/db/backends/sqlite3/schema.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/django/db/backends/sqlite3/schema.py b/django/db/backends/sqlite3/schema.py index e8e40bbe34..b1c91dba3c 100644 --- a/django/db/backends/sqlite3/schema.py +++ b/django/db/backends/sqlite3/schema.py @@ -4,6 +4,7 @@ from decimal import Decimal from django.apps.registry import Apps from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.ddl_references import Statement +from django.db.models import UniqueConstraint from django.db.transaction import atomic from django.db.utils import NotSupportedError @@ -398,7 +399,13 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): self.delete_model(old_field.remote_field.through) def add_constraint(self, model, constraint): - self._remake_table(model) + if isinstance(constraint, UniqueConstraint) and constraint.condition: + super().add_constraint(model, constraint) + else: + self._remake_table(model) def remove_constraint(self, model, constraint): - self._remake_table(model) + if isinstance(constraint, UniqueConstraint) and constraint.condition: + super().remove_constraint(model, constraint) + else: + self._remake_table(model) |
