• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Laravel Dodawanie pól do istniejącej tabeli

Cloud VPS
+1 głos
959 wizyt
pytanie zadane 13 czerwca 2017 w PHP przez Else Stary wyjadacz (12,260 p.)

Witajcie!

Tworzę aplikację w laraverze i mam pewien problem. Stworzyłem tabelę z kilkoma kolumnami, a teraz chcę do tej tabeli dodać jedną kolumnę. Zastanawiam się jakiego polecenia użyć, żeby migracja wyłącznie dodała nowe pole. Ważne jest dla mnie to, aby dane które już są w tej tabeli nie zostały usunięte, więc wygenerowanie bazy od nowa odpada.

Czyli tak w skrócie: Jak zrobić migrację która tylko doda nową kolumnę do tabeli nie ruszając danych?

Dzięki za pomoc.

2 odpowiedzi

+1 głos
odpowiedź 13 czerwca 2017 przez zgrybus Pasjonat (24,860 p.)
wybrane 13 czerwca 2017 przez Else
komentarz 13 czerwca 2017 przez Else Stary wyjadacz (12,260 p.)
Dzięki, działa :)
+1 głos
odpowiedź 13 czerwca 2017 przez jpacanowski VIP (101,940 p.)

Ja gdy chcę dodać nową kolumnę do stworzonej już tabeli to dodaję tą kolumnę ręcznie do bazy. W moim wypadku używam Sequel Pro. Następnie dodaję nowo stworzoną kolumnę do Schema aby zachować porządek i spójność z samą bazą.

Np. moja tabela wygląda tak:

Schema::create('pages', function (Blueprint $table) {
      $table->increments('id');
      $table->integer('author_id')->nullable(false)->unsigned();
      $table->integer('visits_count')->unsigned()->default(0);
      $table->string('title')->nullable(false);
      $table->text('content')->nullable(false);
      $table->timestamps();
});

I chcę jeszcze dodać slug, więc dodaję nową kolumnę do kodu:

Schema::create('pages', function (Blueprint $table) {
      $table->increments('id');
      $table->integer('author_id')->nullable(false)->unsigned();
      $table->integer('visits_count')->unsigned()->default(0);
      $table->string('title')->nullable(false);
      $table->string('slug')->nullable(false)->unique();
      $table->text('content')->nullable(false);
      $table->timestamps();
});

A następnie ręcznie w samej bazie dodaję kolumnę slug...

Dzięki temu wszystko mam w jednym pliku users, a nie 100 osobnych plików migracji...

I nikt mnie raczej nie namówi do tej przyjętej "poprawnej" metody...

Podobne pytania

0 głosów
2 odpowiedzi 354 wizyt
pytanie zadane 24 marca 2018 w PHP przez niezalogowany
0 głosów
3 odpowiedzi 325 wizyt

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,903 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...