#24630: UUIDField migration
-------------------------------------+-------------------------------------
     Reporter:  lucacorti            |                    Owner:
                                     |  priidukull
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.8
     Severity:  Normal               |               Resolution:
     Keywords:  uuidfiled            |             Triage Stage:
  migrations                         |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by priidukull):

 I tried to reproduce the bug with Python 2.7 and Django 1.7/1.8. Did not
 manage to reproduce the issue. I used the following migrations.

 0001_initial.py:

 {{{#!python

 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals

 from django.db import models, migrations


 class Migration(migrations.Migration):

     dependencies = [
     ]

     operations = [
         migrations.CreateModel(
             name='Choice',
             fields=[
                 ('id', models.AutoField(verbose_name='ID',
 serialize=False, auto_created=True, primary_key=True)),
                 ('choice_text', models.CharField(max_length=200)),
                 ('votes', models.IntegerField(default=0)),
             ],
         ),
         migrations.CreateModel(
             name='Question',
             fields=[
                 ('id', models.AutoField(verbose_name='ID',
 serialize=False, auto_created=True, primary_key=True)),
                 ('question_text', models.CharField(max_length=200)),
                 ('pub_date', models.DateTimeField(verbose_name=b'date
 published')),
             ],
         ),
         migrations.AddField(
             model_name='choice',
             name='question',
             field=models.ForeignKey(to='polls.Question'),
         ),
     ]

 }}}

 0002_second.py:

 {{{#!python

 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 import random

 from django.db import migrations


 def populate_old_field(apps, schema_editor):
     Question = apps.get_model('polls', 'Question')
     for i in range(1, 100):
         q = Question(i, random.getrandbits(128), '2015-09-09')
         q.save()


 class Migration(migrations.Migration):

     dependencies = [
         ('polls', '0001_initial'),
     ]

     operations = [
         migrations.RunPython(
             populate_old_field
         ),
     ]

 }}}

 0003_third.py:

 {{{#!python

 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals

 from django.db import models, migrations


 def populate_new_field(apps, schema_editor):
     Question = apps.get_model('polls', 'Question')
     for q in Question.objects.all():
         q.question_text_new = q.question_text
         q.save()


 class Migration(migrations.Migration):

     dependencies = [
         ('polls', '0002_second'),
     ]

     operations = [
         migrations.AddField(
             model_name='question',
             name='question_text_new',
             field=models.CharField(max_length=300, null=True),
         ),
         migrations.RunPython(
             populate_new_field,
         ),
         migrations.RemoveField(
             model_name='question',
             name='question_text',
         ),
     ]

--
Ticket URL: <https://code.djangoproject.com/ticket/24630#comment:5>
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.10bdbdc547420508419fba3ea63ea4c3%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to