C jak configure

Listopad 20, 2008

Django – dodawanie pól do modelu bez utraty danych

Filed under: django,programowanie — erendil @ 11:40 am
Tags: , , ,

Komenda python manage.py syncdb tworzy nowe tabele bez modyfikowania istniejących. Co zrobić jeśli chcemy rozbudować nasz model, a nie chcemy stracić danych już wprowadzonych? Proste rozwiązanie poniżej.

1) Robimy zrzut bazy danych:

python manage.py dumpdata nazwa_aplikacji > backup.sql

2) Dodajemy nowe atrybuty do modelu określając domyślne atrybuty, uzupełniając już istniejące o domyślne wartości

3) Resetujemy aplikację by wykreować zmodyfikowane tabele

python manage.py reset nazwa_aplikacji

4) Wczytujemy dane zrzucone w pkt 1.

python manage.py loaddata backup.sql

Alternatywną metodą jest użycie django-evolution, ale powyższa metoda pozwala na zmiany bez grzebania się w kodzie.

Theme: Rubric. Blog na WordPress.com.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.