laravel

Laravel Kako dodati stupac u postojeću tablicu

Laravel Kako dodati stupac u postojeću tablicu

Problem

Česta je stvar dodavanje novih stupaca u vaše migracije Laravela. Aplikacije bi trebale biti skalabilne, što znači da dodavanje novih značajki dodatno razvija vašu aplikaciju.

Vrlo često novi programeri Laravela trebaju pokretati svoje migracije, ali ne osiguravaju da se migracije mogu vratiti i migrirati više puta, a da ništa ne razbiju.

Iako to nije naš fokus, mislim da je bilo važno to reći prije nego što krenemo u svoj problem.

Slijedi uobičajeni problem koji će novi programeri Laravela pokušati učiniti kada žele dodati novi stupac u postojeću tablicu.

U ovom su trenutku već učinili nešto poput:

javna funkcija gore ()

Shema :: create ('organizacije', funkcija ($ tablica)
$ tablica-> inkrementi ('id');
$ table-> string ('name') -> nullable ();
$ table-> text ('about') -> nullable ();
);

To će stvoriti novu tablicu za njih. Da biste ovo učinili čistim, trebali biste dodati i funkciju down i u ovom slučaju samo ispustiti cijelu tablicu. Funkcija dolje pokrenut će se kada želite vratiti svoju migraciju.

Preskačući sve to, pravi se problem pojavljuje kada zaborave jedan stupac i žele to dodati nakon toga, pa kreiraju novu datoteku (klasu) za migraciju, pokušavaju pokrenuti nešto poput:

javna funkcija gore ()

Shema :: create ('organizacije', funkcija ($ tablica)
$ table-> integer ('size') -> nullable ();
);

Nadaju se da će postojećoj tablici dodati novu veličinu stupca.

Sada da vidimo što će se dogoditi i kako spriječiti da se to ponovi.

Riješenje

Glavni problem ovdje je ono što novi programeri često propuste primijetiti što je statički naziv sheme . Stvaranje koristite samo kada u početku izrađujete tablicu. Ako u bilo kojem trenutku trebate dodatno ažurirati tablicu, umjesto nje želite koristiti tablicu.

Dakle, stvarna funkcija trebala bi biti sljedeća:

javna funkcija gore ()

Schema :: table ('organizacije', funkcija ($ tablica)
$ table-> integer ('size') -> nullable ();
);

A funkcija dolje bi bila sljedeća:

javna funkcija dolje ()

Schema :: table ('organizacije', funkcija ($ tablica)
$ tablica-> dropColumn ('veličina');
);

Moj vam osobni prijedlog je da nakon izrade nove (izmjene) datoteke za migraciju napravite sljedeće:

Još jedan savjet

To će vam dobro doći u kasnijoj fazi ako želite automatizirati svoju implementaciju i ako vaša skripta treba pokrenuti vraćanje.

Još jedan savjet koji vam mogu dati je da planirate gdje želite smjestiti svoju kolumnu. Samo tako radeći, Laravel će smjestiti vaš novi stupac na kraj, vjerojatno nakon stupca updated_at. (Većina tablica ima ovo)

Želite koristiti metodu kako bi vaš konačni kod izgledao ovako:

javna funkcija gore ()

Schema :: table ('organizacije', funkcija ($ tablica)
$ table-> integer ('size') -> after ('name') -> nullable ();
);

U ovom slučaju, Laravel će smjestiti vaš novi stupac odmah iza stupca imena, tako da izgleda lijepo i puno je bolje organiziran.

Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...
10 najboljih igara za igranje na Ubuntuu
Windows platforma bila je jedna od dominantnih platformi za igre zbog ogromnog postotka igara koje se danas razvijaju kako bi podržavale Windows. Može...