#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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
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.

Reply via email to