#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.

Reply via email to