laravel

Laravel Kako dodati stolpec obstoječi tabeli

Laravel Kako dodati stolpec obstoječi tabeli

Težava

Dodajanje novih stolpcev migracijam Laravel je običajna stvar. Aplikacije naj bi bile prilagodljive, kar pomeni, da dodajanje novih funkcij dodatno razvija vašo aplikacijo.

Zelo pogosto morajo novi razvijalci Laravel izvajati svoje selitve, vendar ne poskrbijo, da se selitve lahko večkrat preusmerijo in preselijo, ne da bi pri tem kaj zlomili.

Čeprav to ni naš fokus, mislim, da je bilo pomembno to povedati, preden se lotimo našega problema.

Spodaj je pogosta težava, ki jo bodo poskušali narediti novi razvijalci Laravela, ko bodo želeli obstoječi tabeli dodati nov stolpec.

Na tej točki so že naredili nekaj takega:

javna funkcija navzgor ()

Schema :: create ('organizacije', funkcija ($ tabela)
$ tabela-> prirastki ('id');
$ table-> string ('name') -> nullable ();
$ table-> text ('about') -> nullable ();
);

To bo ustvarilo novo tabelo zanje. Če želite to narediti čisto, dodajte tudi funkcijo dol in v tem primeru preprosto spustite celotno tabelo. Funkcija navzdol se bo zagnala, ko želite premakniti svojo selitev.

Če preskočimo vse to, se resnična težava pokaže, ko pozabijo en stolpec in to želijo dodati, tako da ustvarijo novo migracijsko datoteko (razred) in poskusijo zagnati nekaj takega:

javna funkcija navzgor ()

Schema :: create ('organizacije', funkcija ($ tabela)
$ tabela-> celo število ('velikost') -> nullable ();
);

Upajo, da bodo obstoječi tabeli dodali novo velikost stolpca.

Zdaj pa poglejmo, kaj se zgodi in kako preprečiti, da se to ne bi ponovilo.

Rešitev

Glavna težava je v tem, kaj novi razvijalci pogosto pogrešajo, ko opazijo, katero ime statične metode je shema . Ustvari uporabite le, ko prvotno ustvarjate tabelo. Če morate kadar koli dodatno posodobiti tabelo, namesto nje uporabite tabelo.

Funkcija real up bi morala biti taka:

javna funkcija navzgor ()

Schema :: table ('organizacije', funkcija ($ tabela)
$ tabela-> celo število ('velikost') -> nullable ();
);

In funkcija navzdol bi bila taka:

javna funkcija navzdol ()

Schema :: table ('organizacije', funkcija ($ tabela)
$ tabela-> dropColumn ('velikost');
);

Moj osebni predlog vam je, da po ustvarjanju nove (spreminjajoče) selitvene datoteke naredite naslednje:

Še en namig

To vam bo kasneje prišlo prav, če želite avtomatizirati uvajanje in mora vaš skript zagnati povratne informacije.

Še en nasvet, ki vam ga lahko dam, je, da načrtujete, kam želite postaviti svojo kolumno. S tem bo Laravel postavil vaš novi stolpec na konec, verjetno za stolpec updated_at. (Večina tabel ima to)

Potem želite uporabiti metodo, tako da bi bila vaša končna koda videti tako:

javna funkcija navzgor ()

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

V tem primeru bo Laravel postavil vaš novi stolpec takoj za stolpcem z imeni, tako da je videti lepo in organiziran veliko bolje.

Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...