2014-10-02 8 views
18

Obserwowałem to zachowanie w wersji 1.7, ale nie w poprzednich wersjach z użyciem migracji południowej.Dlaczego django 1.7 tworzy migracje dla zmian w wyborze pola?

np.

class RedemptionCode(models.Model): 
    EXPIRE_OPTIONS = (
     ('1 week', '1 Week'), 
    ) 

    expire_option = models.CharField(max_length=255, choices=EXPIRE_OPTIONS) 

kiedy dodałem więcej opcji:

EXPIRE_OPTIONS = (
    ('1 week', '1 Week'), 
    ('2 weeks', '2 Weeks'), 
    ('1 month', '1 Month'), 
    ('1 day', '1 Day'), 
) 

i prowadzone makemigrations, tworzy migracji dla niego, pochodzących z south tle myślałem należy powiedzieć wykryto żadnych zmian, ponieważ nie wpływa na bazę schemat. Nie wiem, w jakim celu służy:

class Migration(migrations.Migration): 

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

    operations = [ 
     migrations.AlterField(
      model_name='redemptioncode', 
      name='expire_option', 
      field=models.CharField(max_length=255, choices=[('1 week', '1 Week'), ('2 weeks', '2 Weeks'), ('1 month', '1 Month'), ('1 day', '1 Day')]), 
     ), 
    ] 
+0

ponieważ mam kilka up-głosów, wydaje mi się, nie jest to udokumentowane, dlatego stworzyłem bilet https://code.djangoproject.com/ticket/23586 –

+1

Poszukaj odpowiedzi na podobny problem http://stackoverflow.com/a/29233569/3025188 Pozdrawiam! – user3025188

Odpowiedz

24

Po podniósł bilet i został zamknięty z powodu powielania, wreszcie znalazł odpowiedź:

Jest to zgodne z projektem. Jest kilka powodów, z których przynajmniej dla mnie te dane w punktach historycznych muszą mieć pełną dokładną reprezentację modeli, w tym wszystkie ich opcje, nie tylko te, które mają wpływ na bazę danych.

referencyjny: