Zmiana modelu i ponowna migracja
Dodać pole i wprowadzić zmianę do bazy danych
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 makemigrationsKrok 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 migrateWartoś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 0001Zatwierdzaj 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. ✅
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
- makemigrations a migrate
- Czytanie pliku migracji
- Zmiana modelu i ponowna migracja
- sqlmigrate i sprawdzanie SQL