Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaka jest różnica między migracją: Odśwież i migruj: Reset w Laravel


Jaka jest różnica między migracją: Odśwież i migruj: Reset w Laravel


Polecenia „migrują: odśwież” i „migruj: reset` in laravel są związane z zarządzaniem migracją bazy danych, ale służą różnym celom i zachowują się na różne sposoby podczas zarządzania schematem bazy danych. Zrozumienie ich różnic ma kluczowe znaczenie dla programistów Laravel, aby skutecznie obsługiwać stany bazy danych podczas opracowywania lub wdrażania.

Migruj: Odśwież

Polecenie „PHP Artisan migruje: Odśwież” służy do cofania wszystkich migracji, a następnie uruchomienia ich ponownie. Oznacza to, że cofnie każdą zastosowaną migrację (wykonywanie metody „down ()` każdej migracji), a następnie ponownie uruchamia metodę „upnie ()” dla każdej migracji, aby odbudować schemat bazy danych od zera.

- co robi:
- Cofuje się wszystkie migracje (unieważnia wszystkie zmiany schematu).
- Ponowne uruchomienie wszystkich migracji w celu odbudowy schematu bazy danych.
- Typowe przypadki użycia:
- Przydatny, gdy chcesz zresetować schemat bazy danych, zachowując spójność struktury bazy danych za pomocą migracji.
- Umożliwia testowanie migracji, aby upewnić się, że można je wielokrotnie stosować.
-Często w połączeniu z opcją „Nasiona” (`PHP Artisan migruj: odśwież-nasiona`), aby ponownie zafopulować bazę danych z danymi nasion po odbudowie.
- Zalety:
- Utrzymuje strukturę bazy danych spójną poprzez prawidłowe zastosowanie metod `down ()` i `up () '.
-Może selektywnie odświeżyć ograniczoną liczbę migracji za pomocą opcji „--step` (np.„ PHP Artisan migruje: odśwież --step = 5 ”cofnie się i ponownie uruchamia ostatnie pięć migracji).
- Wydajność:
- Może być wolniejszy niż „migruj: świeżo” w ramach dużej liczby migracji, ponieważ wykonuje metodę „down ()` `dla każdej migracji przed ponownym złożeniem wniosku.
- Dane:
- Ponieważ cofnie wszystkie migracje, dane w tabelach zostaną utracone, chyba że zostaną ponownie zasięgu.
- Zachowuje logikę wycofania zdefiniowaną wewnątrz migracji, dzięki czemu może zapobiec niespójności, jeśli migracje obniżone są starannie napisane.

Migruj: RESET

Migrucja Migruj: Reset` Reset` Cofuje wszystkie zastosowane migracje, zwracając bazę danych do pierwotnego stanu niezmienionego.

- co robi:
- Odwraca wszystkie migracje, wykonując metodę „down ()` `każdej migracji.
- W przeciwieństwie do „odświeżania” nie uruchamia migracji.
- Typowe przypadki użycia:
- Przydatny, gdy chcesz całkowicie cofnąć wszystkie migracje bez ich ponownego zastosowania.
- Pomaga w scenariuszach, w których musisz całkowicie wyczyścić schemat przed podjęciem decyzji, co dalej.
- Zalety:
- Wyczuje wszystkie zmiany schematu bazy danych migracji.
- Dane:
- Podobnie jak w przypadku „odświeżania”, cofanie migracji powoduje utratę danych tabeli.
- Żaden schemat nie będzie istniał po zresetowaniu wszystkich migracji.
- Zachowanie:
- Pozostawia bazę danych w stanie rozpoznanym.
- Wymaga ręcznego uruchomienia „PHP Artisan migruje później, jeśli zamierza odbudować schemat.

Dodatkowy kontekst: Migracja: Świeże porównanie

Choć nie pytano bezpośrednio, „migruj: Fresh” jest często mylone z „odświeżaniem” i „reset” i pomaga jeszcze bardziej wyjaśnić różnice:

- `PHP Artisan migruj: Fresh` upuszcza wszystkie tabele w bazie danych bezpośrednio, bez uruchamiania metod` down () ', a następnie uruchamia wszystkie migracje.
- Jest szybszy, ponieważ zamiast cofać migrację przez migrację, po prostu upuszcza wszystkie tabele.
- Idealny do środowisk programistycznych, w których wycieranie bazy danych bez logiki wycofania jest dopuszczalne.
-Podobnie jak „odświeżenie”, można go połączyć z „-nasioną” w celu ponownego powtórzenia danych (np. „Migracja: świeże-nasiona”).

Głębsze wyjaśnienie różnic

- Jak się dzieje:
- „Odśwież” i „resetować” zarówno polegają na metodach „down ()” każdej migracji do cofania zmian schematu.
- „Reset” cofnie wszystko i zatrzymuje się.
- „Odśwież” cofnie wszystko, a następnie znów migruje.
- Stan bazy danych po poleceniu:
- Po „Reset” schemat bazy danych jest pusty (brak tabel z migracji).
- Po „odświeżaniu” schemat bazy danych zostaje przebudowany tak, jakby świeżo migrować.
- Utrata danych:
- Obie polecenia powodują utratę danych, ponieważ wszystkie migracje są w pełni cofane.
-`odświeżenie 'może automatycznie ponownie wprowadzać dane nasion, jeśli używa się flagi`-nasiona.
- Przypadki użycia w cyklu życia rozwoju:
- Użyj „odświeżania” podczas opracowywania lub testowania migracji, a chcesz odbudować swój schemat podczas możliwości przesyłania danych.
- Użyj „reset”, aby całkowicie usunąć schemat migracji przed ręcznym zastosowaniem nowych migracji lub przeprowadzenie nowej migracji.

Praktyczne notatki dla programistów Laravel

- Oba polecenia zależą od prawidłowych scenariuszy migracji za pomocą metod `up ()` i `down ()`, co oznacza, że ​​jeśli brakuje metod `down ()` metody, polecenia wycofujące (`odświeżenie 'i` `resetuj) mogą nie powiodły się lub pozostawić bazę danych w stanie niespójnym.
- „Odświeżenie” można uznać za bezpieczniejsze niż „świeże” w środowiskach, w których chcesz szanować logikę przewagi i potencjalne relacje danych podczas migracji.
- Żadne z poleceń nie powinno być używane niedbale w produkcyjnych bazach danych bez kopii zapasowych, ponieważ wszystkie dane zostaną utracone.
- Są one przede wszystkim zaprojektowane do stosowania w lokalnych środowiskach rozwojowych lub testowania, w których iteracja schematu jest częste, a dane można zresetować bez konsekwencji.

Streszczenie

Kluczowe rozróżnienie to:

- Migruj: Odśwież - cofnij wszystkie migracje, a następnie ponownie uruchom wszystkie migracje.
- Migruj: Resetuj - Cofnij wszystkie migracje, ale nie uruchamiaj ich ponownie.

„Migruj: Odśwież” skutecznie odbudowuje schemat od zera przez wycofanie i migrację, umożliwiając ponowne nasilenie i odświeżenie stopniowe, podczas gdy „migracja: Reset” po prostu zwraca bazę danych do stanu niezmienionego.

Obie polecenia są fundamentalnymi narzędziami dla programistów Laravel do zarządzania wersjami baz danych, ale służą one różnych przepływów pracy i mają unikalny wpływ na stan bazy danych.

To zrozumienie pomaga wybrać odpowiednie polecenie dla różnych etapów tworzenia, testowania i wdrażania aplikacji.

Każde użycie powinno wziąć pod uwagę konsekwencje dla utraty danych, spójności schematu aplikacji i intencji programisty do zarządzania migracją bazy danych w ramach projektu Laravel.