Jak dodać nową kolumnę do istniejącej tabeli w migracji

Jak dodać nową kolumnę do istniejącej tabeli w migracji

Problem

Miałem koszmary, które nie mogłem dodać nowej kolumny do mojego użytkownicy tabela. Wydaje się, że nie mogę tego wymyślić.

Próbowałem edytować plik migracyjny za pomocą…

Funkcja publiczna w górę ()

Schema :: „Użytkownicy”, funkcja ($ tabela)
$ table-> liczba całkowita („płatna”);
);

W terminalu wykonuję PHP Artisan migruj: Zainstaluj I migrować.

Jak dodać nowe kolumny?

Rozwiązanie

Nie możesz zaktualizować żadnych migracji, które zostały już migrowane. Jeśli zostanie już dodany do tabeli migracji, nie przetworzy go ponownie. Twoim rozwiązaniem jest stworzenie nowej migracji, do której możesz użyć Migruj: Zrób polecenie na CLI Artisan. Użyj określonej nazwy, aby uniknąć starć z istniejącymi modelami

Dla Laravela 5+:

PHP Artisan Make: Migracja add_paid_to_users_table - -table = użytkownicy

Będziesz używał metody Schema :: table () (ponieważ uzyskujesz dostęp do istniejącej tabeli i nie tworzysz nowego). I możesz dodać taką kolumnę:

Funkcja publiczna w górę ()

Schema :: „Użytkownicy”, funkcja ($ tabela)
$ table-> liczba całkowita („płatna”);
);

I nie zapomnij dodać opcji wycofania:

Funkcja publiczna w dół ()

Schema :: „Użytkownicy”, funkcja ($ tabela)
$ TABLE-> DropColumn („płatne”);
);

Następnie możesz uruchomić swoje migracje:

PHP Artisan migruje

I dla Laravel 5:

  • Schemat Builder
  • Migracje

Edytować:

używać $ TABLE-> INTEGER („PATE”)-> After („Any_Column”); Aby dodać to pole po określonej kolumnie.