#24264: foreign key constraint error migrating integer pk to CharField
----------------------------+-------------------------------------
Reporter: timgraham | Owner: nobody
Type: Bug | Status: new
Component: Migrations | Version: 1.8alpha1
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
----------------------------+-------------------------------------
Comment (by MarkusH):
I looked into the issue: it is neither related nor unrelated to the
bisected commit mentioned above. The problem is that in
[https://github.com/django/django/blob/38c17871bb6dafd489367f6fe8bc56199223adb8/django/db/backends/base/schema.py#L520
django.db.backends.base.schema._alter_field()]
`new_field.model._meta.related_objects` for `DjangoHero` is an empty list
despite `Donation` having a FK.
The
[https://github.com/django/django/blob/38c17871bb6dafd489367f6fe8bc56199223adb8/django/db/models/options.py#L685
related_objects_graph] after the first `for` loop looks like:
{{{
{<Options for DjangoHero>: [<django.db.models.fields.related.ForeignKey:
donor>],
<Options for Site>: [<django.db.models.fields.related.ForeignKey: site>,
<django.db.models.fields.related.ManyToManyField:
sites>],
<Options for FlatPage>: [<django.db.models.fields.related.ForeignKey:
flatpage>],
<Options for DocumentRelease>:
[<django.db.models.fields.related.ForeignKey: release>],
<Options for Category>: [<django.db.models.fields.related.ForeignKey:
category>,
<django.db.models.fields.related.ForeignKey:
category>,
<django.db.models.fields.related.ForeignKey:
category>,
<django.db.models.fields.related.ForeignKey:
category>],
<Options for ContentType>: [<django.db.models.fields.related.ForeignKey:
content_type>],
<Options for CCLA>: [<django.db.models.fields.related.ForeignKey: ccla>],
<Options for ICLA>: [<django.db.models.fields.related.ForeignKey: icla>],
<Options for Group>: [<django.db.models.fields.related.ForeignKey:
group>,
<django.db.models.fields.related.ForeignKey:
group>,
<django.db.models.fields.related.ManyToManyField:
groups>],
<Options for Permission>: [<django.db.models.fields.related.ForeignKey:
permission>,
<django.db.models.fields.related.ManyToManyField: user_permissions>],
<Options for User>: [<django.db.models.fields.related.ForeignKey: user>,
<django.db.models.fields.related.ForeignKey: user>,
<django.db.models.fields.related.ForeignKey: user>,
<django.db.models.fields.related.ForeignKey: user>],
<Options for Permission>: [<django.db.models.fields.related.ForeignKey:
permission>,
<django.db.models.fields.related.ManyToManyField: permissions>],
<Options for FeedType>: [<django.db.models.fields.related.ForeignKey:
feed_type>],
<Options for Feed>: [<django.db.models.fields.related.ForeignKey: feed>],
<Options for User>: [<django.db.models.fields.related.OneToOneField:
user>,
<django.db.models.fields.related.ForeignKey: user>,
<django.db.models.fields.related.ForeignKey:
owner>],
<Options for ContentType>: [<django.db.models.fields.related.ForeignKey:
content_type>,
<django.db.models.fields.related.ForeignKey:
content_type>]}
}}}
However, due to state changes during migrations `self.model`
(`new_field.model._meta.model`) is not the same instance as the
`DjangoHero` model from
[https://github.com/django/django/blob/38c17871bb6dafd489367f6fe8bc56199223adb8/django/db/models/options.py#L687
all_models()]
--
Ticket URL: <https://code.djangoproject.com/ticket/24264#comment:2>
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/067.758cab34ed3d4e7d36c3c67d709646fa%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.