diff options
| author | Markus Holtermann <info@markusholtermann.eu> | 2015-06-13 00:19:05 +0200 |
|---|---|---|
| committer | Markus Holtermann <info@markusholtermann.eu> | 2015-06-14 20:34:34 +0200 |
| commit | 5bc412c35a4db9ac064304f9c79d34a8afb44c15 (patch) | |
| tree | 62b7cb8b725964db800ed8e20b26f6d523e062f2 | |
| parent | 5304494585c58b0c9245ea9896a6d6122a8673a2 (diff) | |
Took AlterOrderWithRespectTo into account when optimizing migrations
Thanks Andrew Godwin for the review.
| -rw-r--r-- | django/db/migrations/optimizer.py | 6 | ||||
| -rw-r--r-- | tests/migrations/test_optimizer.py | 16 |
2 files changed, 19 insertions, 3 deletions
diff --git a/django/db/migrations/optimizer.py b/django/db/migrations/optimizer.py index 5bb97b5fe4..caf0798b2e 100644 --- a/django/db/migrations/optimizer.py +++ b/django/db/migrations/optimizer.py @@ -21,6 +21,7 @@ class MigrationOptimizer(object): migrations.AlterModelTable, migrations.AlterUniqueTogether, migrations.AlterIndexTogether, + migrations.AlterOrderWithRespectTo, ) self.field_level_operations = ( migrations.AddField, @@ -48,6 +49,11 @@ class MigrationOptimizer(object): self.reduce_model_alter_delete, ), ( + migrations.AlterOrderWithRespectTo, + migrations.DeleteModel, + self.reduce_model_alter_delete, + ), + ( migrations.CreateModel, migrations.RenameModel, self.reduce_model_create_rename, diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py index e599baac83..b22905b033 100644 --- a/tests/migrations/test_optimizer.py +++ b/tests/migrations/test_optimizer.py @@ -93,20 +93,30 @@ class OptimizerTests(SimpleTestCase): ], ) - def test_create_alter_delete_model(self): + def _test_create_alter_foo_delete_model(self, alter_foo): """ - CreateModel, AlterModelTable, AlterUniqueTogether, and DeleteModel should collapse into nothing. + CreateModel, AlterModelTable, AlterUniqueTogether/AlterIndexTogether/ + AlterOrderWithRespectTo, and DeleteModel should collapse into nothing. """ self.assertOptimizesTo( [ migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]), migrations.AlterModelTable("Foo", "woohoo"), - migrations.AlterUniqueTogether("Foo", [["a", "b"]]), + alter_foo, migrations.DeleteModel("Foo"), ], [], ) + def test_create_alter_unique_delete_model(self): + self._test_create_alter_foo_delete_model(migrations.AlterUniqueTogether("Foo", [["a", "b"]])) + + def test_create_alter_index_delete_model(self): + self._test_create_alter_foo_delete_model(migrations.AlterIndexTogether("Foo", [["a", "b"]])) + + def test_create_alter_owrt_delete_model(self): + self._test_create_alter_foo_delete_model(migrations.AlterOrderWithRespectTo("Foo", "a")) + def test_optimize_through_create(self): """ We should be able to optimize away create/delete through a create or delete |
