2016-01-30 10 views
5

Mam Django 1.8 aplikację, której początkowa migracji opiera się na django-interval-field jak ten:Usuwanie migrację Django, który zależy od pola niestandardowego ze starego modułu

import interval.fields 

migrations.CreateModel(
    name='Item', 
    fields=[ 
     ... 
     ('estimated_time', interval.fields.IntervalField(null=True, blank=True)), 

mam od migracji to pole do używania wbudowanej Django w DurationField i nie używam już tego modułu, ale muszę go przechowywać w pliku requirements.txt, aby moje migracje mogły zostać uruchomione.

Jednak ten moduł generuje błędy podczas próby uaktualnienia do wersji Django 1.9. Ponadto nie mogę utrzymywać tego modułu na zawsze. Byłoby miło się go pozbyć.

Próbowałem zgniatać migracje, ale migracja zgnieciona nadal zawiera instrukcję import interval.fields i tworzy pole interwału. Wszystkie zgniatanie polega na łączeniu wszystkiego w jeden plik.

Czy ktoś może mi powiedzieć, jak przejść do usuwania tego modułu?

Dana aplikacja Django to here.

Odpowiedz

4

Więc twój zgniatanie nie jest prawdą zgniecenia

  1. usunąć ten pakiet z requirements.txt
  2. Usuń import interval.fields z Twojego models.py
  3. zmodyfikować interval.fields.IntervalField(xxx) do pewnego rodzaju dostępnego w Django w związanej my_app_label/migrations/1234_some_migrations.py
  4. Zrobione:
1

We wszystkich plikach migracji znajdź wszystkie deklaracje interval.fields.IntervalField (dla danego pola modelu) i zastąp je IntegerField.

Dopóki nie masz migracji danych, która używa pola Interwał podczas migracji, powinieneś być w porządku.

Powiązane problemy