#36947: Changing db_comment / GeneratedField error
------------------------------+-----------------------------------------
Reporter: Alex Fischer | Type: Uncategorized
Status: new | Component: Uncategorized
Version: 6.0 | Severity: Normal
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
------------------------------+-----------------------------------------
Django==5.2.11
Postgres 16.2
With this model definition:
{{{
class Foo(models.Model):
foo = models.IntegerField()
foo_copy = models.GeneratedField(
expression=models.F("foo"),
output_field=models.IntegerField(),
db_persist=True,
)
}}}
makemigrations and migrate run fine.
Now add a db_comment to foo:
{{{
class Foo(models.Model):
foo = models.IntegerField(db_comment="foo")
foo_copy = models.GeneratedField(
expression=models.F("foo"),
output_field=models.IntegerField(),
db_persist=True,
)
}}}
Now if we makemigrations and migrate again, we get the following error:
{{{
django.db.utils.NotSupportedError: cannot alter type of a column used by a
generated column
DETAIL: Column "foo" is used by generated column "foo_copy".
}}}
Running sqlmigrate on the migration that was produced, we can see what the
migration is trying to perform:
{{{
BEGIN;
--
-- Alter field foo on foo
--
ALTER TABLE "my_app_foo" ALTER COLUMN "foo" TYPE integer;
COMMENT ON COLUMN "issue_tracker_foo"."foo" IS 'foo';
COMMIT;
}}}
I don't know why it runs the first ALTER COLUMN statement. The ALTER
COLUMN statement is a no-op most of the time, and that's fine. But in this
case, it throws an error in Postgres ("cannot alter type of a column used
by a generated column").
--
Ticket URL: <https://code.djangoproject.com/ticket/36947>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/0107019c90d19625-1f2ca5d4-8d2f-482b-8dcc-8e013e41a976-000000%40eu-central-1.amazonses.com.