diff options
| author | Paveł Tyślacki <pavel.tyslacki@gmail.com> | 2018-12-27 22:21:59 +0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-01-12 09:50:20 -0500 |
| commit | b69f8eb04cc8762d3dfd5af5ea1fc58e3f2ebcc3 (patch) | |
| tree | 6662b0cfe731e1912ff157ed46540be87cbec2bc /django/db/backends/sqlite3 | |
| parent | 1e837c4b2351c83b1c902314ddfdfa15c63bc60d (diff) | |
Fixed #30062 -- Added support for unique conditional constraints.
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) |
