diff options
| author | Hasan Ramezani <hasan.r67@gmail.com> | 2020-12-13 22:41:20 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-02-19 11:19:01 +0100 |
| commit | 7c18b22e2fa70aa8dcfadb33beb17933abdf7ee4 (patch) | |
| tree | f513fa6078dac88f1f040ae44ecdd2763a60074b /tests | |
| parent | ab58f072502e86dfe21b2bd5cccdc5e94dce8d26 (diff) | |
Fixed #32256 -- Fixed migration optimization crash when swapping field names.
This disables optimization of RenameField operation when an old field
name is referenced in subsequent operations.
Co-authored-by: InvalidInterrupt <InvalidInterrupt@users.noreply.github.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/migrations/test_optimizer.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/migrations/test_optimizer.py b/tests/migrations/test_optimizer.py index 9bb1aafebd..0caaf66f9e 100644 --- a/tests/migrations/test_optimizer.py +++ b/tests/migrations/test_optimizer.py @@ -572,6 +572,23 @@ class OptimizerTests(SimpleTestCase): ], ) + def test_swapping_fields_names(self): + self.assertDoesNotOptimize( + [ + migrations.CreateModel( + 'MyModel', + [ + ('field_a', models.IntegerField()), + ('field_b', models.IntegerField()), + ], + ), + migrations.RunPython(migrations.RunPython.noop), + migrations.RenameField('MyModel', 'field_a', 'field_c'), + migrations.RenameField('MyModel', 'field_b', 'field_a'), + migrations.RenameField('MyModel', 'field_c', 'field_b'), + ], + ) + def test_create_model_remove_field(self): """ RemoveField should optimize into CreateModel. |
