Django Academy · Lekcja

Zmiana modelu i ponowna migracja

Dodać pole i wprowadzić zmianę do bazy danych

Lekcja 3 z 413 kroki

Zmiana modelu i ponowna migracja to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Modele ewoluują

Rzeczywiste aplikacje się zmieniają. Gdy funkcja wymaga nowej kolumny, należy edytować model i pozwolić migracjom przenieść zmianę do bazy danych.

Krok 1: Edycja modelu

Najpierw należy dodać pole w klasie modelu. W tym przykładzie model Post otrzymuje flagę published z rozsądną wartością domyślną.

class Post(models.Model):
    title = models.CharField(max_length=200)
    published = models.BooleanField(default=False)

Krok 2: makemigrations

Należy uruchomić makemigrations. Django porównuje nowy model z poprzednią wersją i zapisuje nową migrację dla dodanego pola.

python manage.py makemigrations

Krok 3: migrate

Należy uruchomić migrate, aby zastosować nowy plik. Kolumna istnieje teraz w rzeczywistej tabeli i jest gotowa do użycia.

python manage.py migrate

Wartości domyślne uzupełniają stare wiersze

Dodanie pola, które nie może mieć wartości NULL, do wypełnionej tabeli wymaga podania wartości dla istniejących wierszy. default uzupełnia je w uporządkowany sposób.

Brak wartości domyślnej? Django zapyta

Bez wartości domyślnej makemigrations zatrzyma się i poprosi o podanie jednorazowej wartości dla istniejących wierszy, zanim będzie kontynuować.

Każda zmiana to nowy plik

Django nigdy nie edytuje starych migracji. Każda zmiana modelu staje się nowym, numerowanym plikiem dodanym na końcu.

Zmiana nazwy pola

Po zmianie nazwy pola Django może zapytać, czy zostało ono zmienione, a nie usunięte i dodane ponownie. Należy odpowiedzieć twierdząco, aby zachować dane w kolumnie.

Usuwanie pola

Należy usunąć pole z modelu, a następnie uruchomić makemigrations, które zapisze krok RemoveField. Po jego zastosowaniu kolumna zostanie trwale usunięta.

Cofanie migracji

Aby cofnąć zmianę, należy wykonać migrate do wcześniejszego numeru. Django uruchomi migracje w kierunku odwrotnym, aby przywrócić poprzedni schemat.

python manage.py migrate blog 0001

Zatwierdzaj pliki

Zawsze należy zatwierdzać nową migrację razem ze zmianami modelu. Współpracownicy uruchomią migrate i otrzymają ten sam schemat, bez niespodzianek.

Szybkie sprawdzenie

Dodają Państwo wymagane pole do tabeli, która zawiera już wiersze. Czego potrzebuje Django?

Podsumowanie

Pętla jest prosta: edycja modelu, makemigrations, migrate, zatwierdzenie zmian. Każda zmiana staje się nowym plikiem, więc historia pozostaje przejrzysta. ✅

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Zmiana modelu i ponowna migracja” jest bezpłatna?

Tak — pełny tekst „Zmiana modelu i ponowna migracja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zmiana modelu i ponowna migracja”?

Dodać pole i wprowadzić zmianę do bazy danych Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Zmiana modelu i ponowna migracja”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. makemigrations a migrate
  2. Czytanie pliku migracji
  3. Zmiana modelu i ponowna migracja
  4. sqlmigrate i sprawdzanie SQL
← Powrót do Django Academy