diff options
author | David Sanders <shang.xiao.sanders@gmail.com> | 2022-09-24 01:40:17 +1000 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-09-25 20:23:01 +0200 |
commit | 9f8c994851804863d556854f5231316eec478bd5 (patch) | |
tree | 5dad49c673d112f0e34ed572e6e36f1ca2dc849b /tests/migrations | |
parent | 50096a3a7ad777fae2179bf8b20ce386b337f247 (diff) | |
download | django-9f8c994851804863d556854f5231316eec478bd5.tar.gz |
Fixed #34027 -- Fixed migrations crash when altering type of char/text fields referenced by foreign key on PostgreSQL.
Diffstat (limited to 'tests/migrations')
-rw-r--r-- | tests/migrations/test_operations.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py index 9d0eae7f01..e02dc9ef3f 100644 --- a/tests/migrations/test_operations.py +++ b/tests/migrations/test_operations.py @@ -2436,6 +2436,45 @@ class OperationTests(OperationTestBase): ], ) + def test_alter_field_pk_fk_char_to_int(self): + app_label = "alter_field_pk_fk_char_to_int" + project_state = self.apply_operations( + app_label, + ProjectState(), + operations=[ + migrations.CreateModel( + name="Parent", + fields=[ + ("id", models.CharField(max_length=255, primary_key=True)), + ], + ), + migrations.CreateModel( + name="Child", + fields=[ + ("id", models.BigAutoField(primary_key=True)), + ( + "parent", + models.ForeignKey( + f"{app_label}.Parent", + on_delete=models.CASCADE, + ), + ), + ], + ), + ], + ) + self.apply_operations( + app_label, + project_state, + operations=[ + migrations.AlterField( + model_name="parent", + name="id", + field=models.BigIntegerField(primary_key=True), + ), + ], + ) + def test_rename_field_reloads_state_on_fk_target_changes(self): """ If RenameField doesn't reload state appropriately, the AlterField |