Loading django/db/migrations/optimizer.py +6 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ class MigrationOptimizer(object): migrations.AlterModelTable, migrations.AlterUniqueTogether, migrations.AlterIndexTogether, migrations.AlterOrderWithRespectTo, ) self.field_level_operations = ( migrations.AddField, Loading @@ -47,6 +48,11 @@ class MigrationOptimizer(object): migrations.DeleteModel, self.reduce_model_alter_delete, ), ( migrations.AlterOrderWithRespectTo, migrations.DeleteModel, self.reduce_model_alter_delete, ), ( migrations.CreateModel, migrations.RenameModel, Loading tests/migrations/test_optimizer.py +13 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
django/db/migrations/optimizer.py +6 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ class MigrationOptimizer(object): migrations.AlterModelTable, migrations.AlterUniqueTogether, migrations.AlterIndexTogether, migrations.AlterOrderWithRespectTo, ) self.field_level_operations = ( migrations.AddField, Loading @@ -47,6 +48,11 @@ class MigrationOptimizer(object): migrations.DeleteModel, self.reduce_model_alter_delete, ), ( migrations.AlterOrderWithRespectTo, migrations.DeleteModel, self.reduce_model_alter_delete, ), ( migrations.CreateModel, migrations.RenameModel, Loading
tests/migrations/test_optimizer.py +13 −3 Original line number Diff line number Diff line Loading @@ -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 Loading