diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py
index 2373ef3469..890af778db 100644
--- a/tests/migrations/test_operations.py
+++ b/tests/migrations/test_operations.py
@@ -2489,10 +2489,7 @@ class OperationTests(OperationTestBase):
         """
         Tests the RenameField operation.
         """
-        project_state = self.set_up_test_model(
-            "test_rnfl", unique_together=True, index_together=True
-        )
-        # Test the state alteration
+        project_state = self.set_up_test_model("test_rnfl")
         operation = migrations.RenameField("Pony", "pink", "blue")
         self.assertEqual(operation.describe(), "Rename field pink on Pony to blue")
         self.assertEqual(operation.migration_name_fragment, "rename_pink_pony_blue")
@@ -2500,46 +2497,19 @@ class OperationTests(OperationTestBase):
         operation.state_forwards("test_rnfl", new_state)
         self.assertIn("blue", new_state.models["test_rnfl", "pony"].fields)
         self.assertNotIn("pink", new_state.models["test_rnfl", "pony"].fields)
-        # Make sure the unique_together has the renamed column too
-        self.assertIn(
-            "blue", new_state.models["test_rnfl", "pony"].options["unique_together"][0]
-        )
-        self.assertNotIn(
-            "pink", new_state.models["test_rnfl", "pony"].options["unique_together"][0]
-        )
-        # Make sure the index_together has the renamed column too
-        self.assertIn(
-            "blue", new_state.models["test_rnfl", "pony"].options["index_together"][0]
-        )
-        self.assertNotIn(
-            "pink", new_state.models["test_rnfl", "pony"].options["index_together"][0]
-        )
-        # Test the database alteration
+        # Rename field.
         self.assertColumnExists("test_rnfl_pony", "pink")
         self.assertColumnNotExists("test_rnfl_pony", "blue")
         with connection.schema_editor() as editor:
             operation.database_forwards("test_rnfl", editor, project_state, new_state)
         self.assertColumnExists("test_rnfl_pony", "blue")
         self.assertColumnNotExists("test_rnfl_pony", "pink")
-        # Ensure the unique constraint has been ported over
-        with connection.cursor() as cursor:
-            cursor.execute("INSERT INTO test_rnfl_pony (blue, weight) VALUES (1, 1)")
-            with self.assertRaises(IntegrityError):
-                with atomic():
-                    cursor.execute(
-                        "INSERT INTO test_rnfl_pony (blue, weight) VALUES (1, 1)"
-                    )
-            cursor.execute("DELETE FROM test_rnfl_pony")
-        # Ensure the index constraint has been ported over
-        self.assertIndexExists("test_rnfl_pony", ["weight", "blue"])
-        # And test reversal
+        # Reversal.
         with connection.schema_editor() as editor:
             operation.database_backwards("test_rnfl", editor, new_state, project_state)
         self.assertColumnExists("test_rnfl_pony", "pink")
         self.assertColumnNotExists("test_rnfl_pony", "blue")
-        # Ensure the index constraint has been reset
-        self.assertIndexExists("test_rnfl_pony", ["weight", "pink"])
-        # And deconstruction
+        # Deconstruction.
         definition = operation.deconstruct()
         self.assertEqual(definition[0], "RenameField")
         self.assertEqual(definition[1], [])
@@ -2548,6 +2518,74 @@ class OperationTests(OperationTestBase):
             {"model_name": "Pony", "old_name": "pink", "new_name": "blue"},
         )
 
+    def test_rename_field_unique_together(self):
+        project_state = self.set_up_test_model("test_rnflut", unique_together=True)
+        operation = migrations.RenameField("Pony", "pink", "blue")
+        new_state = project_state.clone()
+        operation.state_forwards("test_rnflut", new_state)
+        # unique_together has the renamed column.
+        self.assertIn(
+            "blue",
+            new_state.models["test_rnflut", "pony"].options["unique_together"][0],
+        )
+        self.assertNotIn(
+            "pink",
+            new_state.models["test_rnflut", "pony"].options["unique_together"][0],
+        )
+        # Rename field.
+        self.assertColumnExists("test_rnflut_pony", "pink")
+        self.assertColumnNotExists("test_rnflut_pony", "blue")
+        with connection.schema_editor() as editor:
+            operation.database_forwards("test_rnflut", editor, project_state, new_state)
+        self.assertColumnExists("test_rnflut_pony", "blue")
+        self.assertColumnNotExists("test_rnflut_pony", "pink")
+        # The unique constraint has been ported over.
+        with connection.cursor() as cursor:
+            cursor.execute("INSERT INTO test_rnflut_pony (blue, weight) VALUES (1, 1)")
+            with self.assertRaises(IntegrityError):
+                with atomic():
+                    cursor.execute(
+                        "INSERT INTO test_rnflut_pony (blue, weight) VALUES (1, 1)"
+                    )
+            cursor.execute("DELETE FROM test_rnflut_pony")
+        # Reversal.
+        with connection.schema_editor() as editor:
+            operation.database_backwards(
+                "test_rnflut", editor, new_state, project_state
+            )
+        self.assertColumnExists("test_rnflut_pony", "pink")
+        self.assertColumnNotExists("test_rnflut_pony", "blue")
+
+    def test_rename_field_index_together(self):
+        project_state = self.set_up_test_model("test_rnflit", index_together=True)
+        operation = migrations.RenameField("Pony", "pink", "blue")
+        new_state = project_state.clone()
+        operation.state_forwards("test_rnflit", new_state)
+        self.assertIn("blue", new_state.models["test_rnflit", "pony"].fields)
+        self.assertNotIn("pink", new_state.models["test_rnflit", "pony"].fields)
+        # index_together has the renamed column.
+        self.assertIn(
+            "blue", new_state.models["test_rnflit", "pony"].options["index_together"][0]
+        )
+        self.assertNotIn(
+            "pink", new_state.models["test_rnflit", "pony"].options["index_together"][0]
+        )
+        # Rename field.
+        self.assertColumnExists("test_rnflit_pony", "pink")
+        self.assertColumnNotExists("test_rnflit_pony", "blue")
+        with connection.schema_editor() as editor:
+            operation.database_forwards("test_rnflit", editor, project_state, new_state)
+        self.assertColumnExists("test_rnflit_pony", "blue")
+        self.assertColumnNotExists("test_rnflit_pony", "pink")
+        # The index constraint has been ported over.
+        self.assertIndexExists("test_rnflit_pony", ["weight", "blue"])
+        # Reversal.
+        with connection.schema_editor() as editor:
+            operation.database_backwards(
+                "test_rnflit", editor, new_state, project_state
+            )
+        self.assertIndexExists("test_rnflit_pony", ["weight", "pink"])
+
     def test_rename_field_with_db_column(self):
         project_state = self.apply_operations(
             "test_rfwdbc",