Problem
Dodanie nowych kolumn do migracji Laravela jest powszechną rzeczą. Aplikacje mają być skalowalne, co oznacza, że dodanie nowych funkcji rozwija aplikację.
Bardzo często nowi programiści Laravel muszą prowadzić migracje, ale nie upewniają się, że migracje mogą cofać się i migrować wiele razy, bez łamania niczego.
Chociaż nie jest to naszym celem, myślę, że ważne było, aby stwierdzić, że zanim przejdziemy do naszego problemu.
Poniżej znajduje się powszechny problem, który nowi programiści Laravel będą próbowały zrobić, gdy chcą dodać nową kolumnę do istniejącej tabeli.
W tym momencie zrobili już coś w rodzaju:
Funkcja publiczna w górę ()To stworzy dla nich nową tabelę. Aby to było czyste, powinieneś również dodać funkcję w dół i po prostu upuść cały stół w tym przypadku. Funkcja Down zostanie uruchomiona, gdy chcesz cofnąć migrację.
Przeskakując przez to wszystko, pojawia się prawdziwy problem, gdy zapominają o jednej kolumnie i chcą go później dodać, aby utworzyć nowy plik migracyjny (klasa), próbują uruchomić coś takiego:
Funkcja publiczna w górę ()Mają nadzieję dodać nowy rozmiar kolumny do istniejącej tabeli.
Teraz zobaczmy, co się stanie i jak temu zapobiec powtórzeniu.
Rozwiązanie
Głównym problemem jest to, co nowi programiści często tęsknią . Używasz Utwórz tylko wtedy, gdy początkowo tworzysz swój stół. Jeśli chcesz dalej zaktualizować tabelę w dowolnym momencie, chcesz zamiast tego użyć tabeli.
Tak więc prawdziwa funkcja UP powinna być taka:
Funkcja publiczna w górę ()A funkcja spadła byłaby taka:
Funkcja publiczna w dół ()Moją osobistą sugestią jest to, że po utworzeniu nowego (zmieniania) pliku migracyjnego wykonaj następujące czynności:
N
Kolejna wskazówka
Przydaje się to na późniejszym etapie, jeśli chcesz zautomatyzować wdrażanie, a skrypt musi uruchomić wycofanie.
Kolejną wskazówką, którą mogę ci dać, jest zaplanowanie tam, gdzie chcesz umieścić swoją kolumnę. W ten sposób Laravel umieści nową kolumnę na końcu, prawdopodobnie po zaktualizowanej kolumnie_at. (Większość tabel ma to)
Chcesz użyć metody, aby Twój ostatni kod wyglądałby tak:
Funkcja publiczna w górę ()W takim przypadku Laravel umieści nową kolumnę zaraz po kolumnie z nazwą, aby wyglądała ładnie i jest znacznie lepiej zorganizowana.