diff options
| author | Tim Graham <timograham@gmail.com> | 2014-07-14 08:16:35 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-07-15 15:20:59 -0400 |
| commit | 015496539247b24c73b163f279ae8c8d3ccefc4c (patch) | |
| tree | 2d27b98390a0d125f5d83b4cb15c968cc740f45c | |
| parent | b65a2001e7be3811903fc8769fa4d3df3d324f18 (diff) | |
Fixed #23013 -- Fixed removing unique_together/index_together constraints in migrations.
Thanks melinath for the report.
| -rw-r--r-- | django/db/migrations/operations/models.py | 4 | ||||
| -rw-r--r-- | django/db/migrations/state.py | 2 | ||||
| -rw-r--r-- | tests/migrations/test_operations.py | 8 |
3 files changed, 10 insertions, 4 deletions
diff --git a/django/db/migrations/operations/models.py b/django/db/migrations/operations/models.py index 1c2f209df3..1ded7c6db4 100644 --- a/django/db/migrations/operations/models.py +++ b/django/db/migrations/operations/models.py @@ -248,7 +248,7 @@ class AlterUniqueTogether(Operation): return name.lower() == self.name.lower() def describe(self): - return "Alter %s for %s (%s constraint(s))" % (self.option_name, self.name, len(self.unique_together)) + return "Alter %s for %s (%s constraint(s))" % (self.option_name, self.name, len(self.unique_together or '')) class AlterIndexTogether(Operation): @@ -288,7 +288,7 @@ class AlterIndexTogether(Operation): return name.lower() == self.name.lower() def describe(self): - return "Alter %s for %s (%s constraint(s))" % (self.option_name, self.name, len(self.index_together)) + return "Alter %s for %s (%s constraint(s))" % (self.option_name, self.name, len(self.index_together or '')) class AlterOrderWithRespectTo(Operation): diff --git a/django/db/migrations/state.py b/django/db/migrations/state.py index ab1c39f8ee..d24a37e5b9 100644 --- a/django/db/migrations/state.py +++ b/django/db/migrations/state.py @@ -272,8 +272,6 @@ class ModelState(object): # First, make a Meta object meta_contents = {'app_label': self.app_label, "apps": apps} meta_contents.update(self.options) - if "unique_together" in meta_contents: - meta_contents["unique_together"] = list(meta_contents["unique_together"]) meta = type(str("Meta"), tuple(), meta_contents) # Then, work out our bases try: diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py index 5444dae97c..b8d1ae5819 100644 --- a/tests/migrations/test_operations.py +++ b/tests/migrations/test_operations.py @@ -899,6 +899,10 @@ class OperationTests(OperationTestBase): operation.state_forwards("test_alunto", new_state) self.assertEqual(len(new_state.models["test_alunto", "pony"].options.get("unique_together", set())), 1) + def test_alter_unique_together_remove(self): + operation = migrations.AlterUniqueTogether("Pony", None) + self.assertEqual(operation.describe(), "Alter unique_together for Pony (0 constraint(s))") + def test_alter_index_together(self): """ Tests the AlterIndexTogether operation. @@ -922,6 +926,10 @@ class OperationTests(OperationTestBase): operation.database_backwards("test_alinto", editor, new_state, project_state) self.assertIndexNotExists("test_alinto_pony", ["pink", "weight"]) + def test_alter_index_together_remove(self): + operation = migrations.AlterIndexTogether("Pony", None) + self.assertEqual(operation.describe(), "Alter index_together for Pony (0 constraint(s))") + def test_alter_model_options(self): """ Tests the AlterModelOptions operation. |
