﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
27731	Squashmigrations doesn't optimize AlterField related_name across AlterUniqueTogether/AlterIndexTogether	Ed Morley	Simon Charette	"The `squashmigrations` command doesn't combine an `AlterField()` with `CreateModel()` in the case below, when all that was changed was the `related_name`.

ie: This fails on Django master...

{{{
diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py
index fc4f0ac..93a43a7 100644
--- a/tests/migrations/test_optimizer.py
+++ b/tests/migrations/test_optimizer.py
@@ -572,6 +572,26 @@ class OptimizerTests(SimpleTestCase):
             ],
         )

+    self.assertOptimizesTo(
+        [
+            migrations.CreateModel(""Bar"", [(""name"", models.CharField(max_length=255))]),
+            migrations.CreateModel(""Foo"", [
+                (""a"", models.ForeignKey(""testapp.Bar"", models.CASCADE)),
+                (""b"", models.IntegerField()),
+            ]),
+            alter,
+            migrations.AlterField(""Foo"", ""a"", models.ForeignKey(""testapp.Bar"", models.CASCADE, related_name=""baz"")),
+        ],
+        [
+            migrations.CreateModel(""Bar"", [(""name"", models.CharField(max_length=255))]),
+            migrations.CreateModel(""Foo"", [
+                (""a"", models.ForeignKey(""testapp.Bar"", models.CASCADE, related_name=""baz"")),
+                (""b"", models.IntegerField()),
+            ]),
+            alter,
+        ],
+    )
+
         # RenameField
         self.assertDoesNotOptimize(
             [
}}}

This causes failures in:
* test_create_alter_index_field
* test_create_alter_unique_field

ie optimization should occur but doesn't, when `alter` is:
`migrations.AlterUniqueTogether(""Foo"", [[""a"", ""b""]])`

...or when `alter` is:
`migrations.AlterIndexTogether(""Foo"", [[""a"", ""b""]])`

(But passes in the `AlterOrderWithRespectTo` case)."	Cleanup/optimization	closed	Migrations	dev	Normal	fixed	squashmigrations		Accepted	1	0	0	0	0	0
