summaryrefslogtreecommitdiff
path: root/tests/migrations
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2022-09-24 01:40:17 +1000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-09-25 20:23:01 +0200
commit9f8c994851804863d556854f5231316eec478bd5 (patch)
tree5dad49c673d112f0e34ed572e6e36f1ca2dc849b /tests/migrations
parent50096a3a7ad777fae2179bf8b20ce386b337f247 (diff)
downloaddjango-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.py39
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