Migracje w Laravel

Migracje w Laravel

Migracjami w Laravel nazywamy tworzenie i modyfikowanie struktury tabeli.
Do wykonywania migracji wraz z Laravelem zostało dostarczone specjalne narzędzie o nazwie Artisan.

 

Tworzenie migraci

Na wstępe musimy zrozumieć, że tworząd nową migrację przy pomocy narzędzia php artisan poleceniem: php artisan make:migrate create_article_table --create="article" to tak naprawdę tworzymy tylko plik ze strukturą kodu. Gdy po wykonaniu polecenia otworzymy ten wlaśnie plik, który narzędzie dla Nas wygenerowało, a znajduje się on w database/migrations/2017_11_17_212314_create_article_table.php to tak naprawdę dopiero teraz możemy przystąpić do tworzenia struktury tabeli.

Po otwarciu pliku, może troszkę zdziwić jego zawartość, gdyż zbyt dużo się tam nie dzieje. Znajdują się tam raptem dwie metody: up() oraz down().
Metoda up() jeśli ją wykonamy tworzy tabelę w bazie danych, a metoda down() ją usuwa.

W metodzie up() znajdują się zadeklarowane już dwie kolumny:

$table->bigIncrements('id');
$table->timestamps();

Pierwsze to int, które określa unikalny identyfikator wpisu, a drugi wpis tworzy tak naprawdę dwie tabele, gdzie pierwsza z nich określa kiedy wpis został dodany, a druga kiedy został zmodyfikowany. Dobrą praktyką jest to, aby pozostawić te dwa wpisy a strukturę naszej tabeli umieścić między nimi. Niezmiernie ważną rzeczą jest to, że domyślnie zadeklarowane przez Nas pola muszą zostać uzupełnione. Dlatego też Laravel udostępnia dla Nas modyfikatory dla poszczególnych kolumn. Nic nie stoi na przeszkodzie, aby użyć więcej niż jeden modyfikator w kolumnie.

Typy pól jakie obsługuje Laravel:
https://laravel.com/docs/6.x/migrations#creating-columns
Modyfikatory pól jakie obsługuje Laravel:
https://laravel.com/docs/6.x/migrations#column-modifiers

Przykładowa tabela:

$table->string('title');
$table->text('content')->nullable();
$table->timestamp('date');
$table->string('type');
$table->string('image')->nullable();
$table->timestamps();

Mając już przygotowaną przez Nas tabele. musimy wykonać migrację. W tym celu przechodzimy do konsoli i posłużymy się poleceniem:

php artisan migrate

Powyższe polecenie wykona wszystkie migracje, które znajdują się w katalogu:

database/migrations

Oczywiście chcąc wykonać tylko jedną konkretną migrację można to sprecyzować, jednak warto pamiętać o tym, że istnieje super ważne polecenie

help

Jak skorzystać z powyższego polecenia?

php artisan help migrate

To właśnie tam znajdziemy wszelką niezbędną pomoc dla naszego molecenia.