Laravel krok po kroku - część 4 - Konfiguracja bazy danych

Paweł Mysior
3 lipca 2018

Konfiguracja

Laravel pozwala w łatwy sposób współpracować z popularnymi bazami danych takimi jak MySQL, PostgreSQL, SQLite i SQL Server.

W pierwszej kolejności musimy skonfigurować połączenie z bazą danych. Konfiguracja połączenia znajduje się w pliku config/database.php, który pobiera wartości z pliku .env znajdującym się w głównym katalogu. Domyślnie klucze te są skonfigurowane pod użycie środowiska deweloperskiego Homestead.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

W razie potrzeby możemy je oczywiście dopasować do naszej konfiguracji.

Migracje

Pliki z migracjami zawierają instrukcję do stworzenia tabel w bazie danych, które będą potrzebne w aplikacji. Możemy oczywiście stworzyć te tabele ręcznie, ale dzięki mechanizmowi migracji zachowujemy informację o tabelach w repozytorium i łatwo możemy je odtworzyć na innej maszynie.

Najłatwiejszym sposobem na utworzenie pliku migracji jest użycie Artisana, czyli CLI Laravela. Wpiszmy w terminalu:

php artisan make:migration create_posts_table --create=posts

W katalogu database/migrations pojawi się nowy plik o nazwie podobnej do tej: 2018_07_03_120000_create_posts_table.php. Nazwa każdego pliku migracji zaczyna się od daty i godziny, co pozwala Laravelowi ustalić kolejność ich wykonywania przy tworzeniu tabel w bazie danych. To co nas interesuje w pliku migracji to treść metody up():

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
    });
}

Wykonanie tej migracji spowoduje utworzenie w bazie danych tabeli o nazwie posts z trzema kolumnami.

  • Kolumna o nazwie id typu UNSIGNED INTEGER z AUTO_INCREMENT. Innymi słowy klucz podstawowy tabeli. Utworzona przez metodę increments.
  • Kolumny created_atupdated_at, obie typu TIMESTAMP. Utworzone przez metodę timestamps. Gdy będziemy zapisywać modele za pomocą Eloquenta, wartości tych dwóch kolumn będą się uzupełniać automatycznie. Więcej o Eloquencie w jednym z następnych postów.

Chociaż nie są wymagane, w większości przypadków będziemy chcieli mieć te trzy kolumny w każdej tabeli.

W tabeli posts chcemy przechowywać informację o tytule i treści wpisu. Zmodyfikujmy zatem treść metody up() w następujący sposób:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->text('body');
        $table->timestamps();
    });
}

Instrukcja $table->string('title') stworzy kolumnę typu VARCHAR(255) o nazwie title w naszej tabeli. Podobnie, instrukcja $table->text('body') doda kolumnę typu TEXT o nazwie body w naszej tabeli.

Pełny wykaz dostępnych metod znajdziemy w dokumentacji.

Nasz plik z migracją tabeli posts jest gotowy. Zmigrujmy zatem bazę danych. W terminalu wpiszmy:

php artisan migrate

Ta komenda dodała naszą tabelę do bazy danych.

W tej części tutoriala dowiedzieliśmy się jak skonfigurować połączenie z bazą danych oraz czym są migracje i jak je pisać. W następnej części nauczymy się pobierać, wstawiać, edytować i usuwać rekordy z bazy danych.

Wygodny hosting zapewnia duet DigitalOceanLaravel Forge.
Copyright © laravelpolska.com

Drogi Użytkowniku!

Dalsze korzystanie z serwisu bez zmiany ustawień dotyczących cookies w przeglądarce oznacza akceptację plików cookies, co będzie skutkowało zapisywaniem ich na Twoich urządzeniach przez serwis internetowy laravelpolska.com. Jeśli nie wyrażasz zgody na przyjmowanie cookies, prosimy o zmianę ustawień w przeglądarce lub o opuszczenie serwisu. więcej

Stosujemy pliki cookies (tzw. ciasteczka) i inne pokrewne technologie, które mają na celu:

  • dostosowanie zawartości stron internetowych Serwisu do Twoich preferencji oraz optymalizacji korzystania ze stron internetowych; w szczególności pliki te pozwalają rozpoznać Twoje urządzenie i odpowiednio wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb;
  • utrzymanie Twojej sesji w Serwisie (po zalogowaniu), dzięki czemu nie musisz na każdej podstronie Serwisu ponownie wpisywać loginu i hasła,
  • zapewnienie bezpieczeństwa podczas korzystania z Serwisu,
  • ulepszenie świadczonych przez nas usług poprzez wykorzystanie danych w celach analitycznych i statystycznych,
  • poznanie Twoich preferencji na podstawie sposobu korzystania z naszych serwisów.

Wykorzystanie cookies pozwala nam zapewnić maksymalną wygodę przy korzystaniu z naszego Serwisu poprzez zapamiętanie Waszych preferencji i ustawień na naszych stronach. Więcej informacji o zamieszczanych plikach cookie oraz o możliwości zmiany ustawień przeglądarki oraz polityce przetwarzania danych znajdziesz w polityce prywatności.

Masz możliwość samodzielnej zmiany ustawień dotyczących cookies w swojej przeglądarce internetowej. Z poziomu przeglądarki internetowej, z której korzystasz, możliwe jest zarządzanie plikami cookies. W najpopularniejszych przeglądarkach istnieje m.in. możliwość:

  • zaakceptowania obsługi cookies, co pozwala na pełne korzystanie z opcji oferowanych przez witryny internetowe;
  • zarządzania plikami cookies na poziomie pojedynczych, wybranych przez użytkownika witryn;
  • określania ustawień dla różnych typów plików cookies, na przykład akceptowania plików stałych, jako sesyjnych itp.;
  • blokowania lub usuwania cookies.

Akceptuję pliki cookies