#29790: Release notes / Changelog missing information about change in duplicate 
pk
behaviour in 2.1
-------------------------------------+-------------------------------------
               Reporter:  He3lixxx   |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:             |        Version:  2.1
  Documentation                      |       Keywords:  multiple primary
               Severity:  Normal     |  keys migration id uuid
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 We migrated a model from a AutoField as id (default behaviour) to a
 UUIDField in the past, using a migration that looked like this with django
 2.0:
 https://code.djangoproject.com/ticket/28541

 There was a bug in SQLite though, which as of today only has the
 workaround listed in the bug tracker:
 https://code.djangoproject.com/ticket/28541

 Thus, we ended up writing our migration like this: https://github.com/fsr-
 
itse/EvaP/blob/master/evap/evaluation/migrations/0062_replace_textanswer_id_with_uuid.py

 When we try updating to django 2.1 now, this migration fails whenever you
 call migrate with the error
 {{{django.db.utils.ProgrammingError: multiple primary keys for table
 "evaluation_textanswer" are not allowed}}}

 It works if we add a RemoveField instruction for the old id before setting
 {{{primary_key=True}}} on the new UUIDField. But this will trigger the
 SQLite bug listed above. Changing the old AutoField to
 {{{primary_key=False}}} where the RemoveField instruction would be doesn't
 fix the error.

 The documentation states that a object may not have more than one primary
 key here:
 
https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.Field.primary_key

 Still, in the release notes for django 2.1 it should be noted that
 django's behaviour was changed here. Also, I would appreciate if there was
 some kind of documentation on how you should migrate primary keys from a
 field to another if no two primary keys are allowed in between. There
 should be a way without squashing the migrations as we want to keep the
 history.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29790>
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/051.719f22fd4d207aab77c393cf72ad54f2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to