laravel

Laravel Kaip pridėti stulpelį prie esamos lentelės

Laravel Kaip pridėti stulpelį prie esamos lentelės

Problema

Naujų stulpelių pridėjimas prie „Laravel“ perkėlimų yra įprastas dalykas. Programos turi būti keičiamos, o tai reiškia, kad pridedant naujų funkcijų jūsų programa toliau tobulinama.

Labai dažnai naujiems „Laravel“ kūrėjams reikia vykdyti migraciją, tačiau jie neužtikrina, kad migracijos gali sugrįžti ir persijungti kelis kartus nieko nepažeisdamos.

Nors tai nėra mūsų dėmesio centras, manau, kad svarbu buvo tai pasakyti prieš pradedant spręsti savo problemą.

Toliau pateikiama įprasta problema, kurią bandys padaryti naujieji „Laravel“ kūrėjai, norėdami prie esamos lentelės pridėti naują stulpelį.

Taigi šiuo metu jie jau padarė kažką panašaus:

viešoji funkcija aukštyn ()

Schema :: sukurti ('organizacijos', funkcija ($ lentelė)
$ table-> inkrementai ('id');
$ table-> string ('name') -> nullable ();
$ table-> text ('about') -> nullable ();
);

Tai sukurs jiems naują lentelę. Kad tai būtų švaru, taip pat turėtumėte pridėti žemyn funkciją ir tokiu atveju tiesiog mesti visą lentelę. Žemyn funkcija bus vykdoma, kai norite sugrąžinti perkėlimą.

Peršokant visa tai, tikroji problema atsiranda, kai jie pamiršta vieną stulpelį ir nori tai pridėti vėliau, kad sukurtumėte naują perkėlimo failą (klasę), bandydami paleisti kažką panašaus:

viešoji funkcija aukštyn ()

Schema :: sukurti ('organizacijos', funkcija ($ lentelė)
$ table-> sveikasis skaičius ('dydis') -> niekinis ();
);

Jie tikisi pridėti naują stulpelio dydį prie esamos lentelės.

Dabar pažiūrėkime, kas atsitiks ir kaip užkirsti kelią tam.

Sprendimas

Pagrindinė problema yra tai, ko naujieji kūrėjai dažnai linkę nepastebėti, kuris yra statinis schemos metodo pavadinimas . Kūrimą naudojate tik tada, kai iš pradžių kuriate lentelę. Jei jums reikia bet kada atnaujinti lentelę, vietoj jos norite naudoti lentelę.

Taigi tikroji funkcija turėtų būti tokia:

viešoji funkcija aukštyn ()

Schema :: lentelė ('organizacijos', funkcija ($ lentelė)
$ table-> sveikasis skaičius ('dydis') -> niekinis ();
);

Žemyn funkcija būtų tokia:

viešoji funkcija žemyn ()

Schema :: lentelė ('organizacijos', funkcija ($ lentelė)
$ table-> dropColumn ('dydis');
);

Mano asmeninis pasiūlymas jums yra tai, kad sukūrę naują (keičiantį) perkėlimo failą atlikite šiuos veiksmus:

Kitas patarimas

Tai bus naudinga vėliau, jei norite automatizuoti diegimą, o scenarijus turi būti paleistas atgal.

Kitas patarimas, kurį galiu jums duoti, yra suplanuoti vietą, kurioje norite įdėti savo stulpelį. Tiesiog tai atlikdamas, „Laravel“ įdės naują stulpelį pabaigoje, tikriausiai po stulpelio „updated_at“. (Daugumoje lentelių tai yra)

Po to norite naudoti metodą, kad galutinis kodas atrodytų taip:

viešoji funkcija aukštyn ()

Schema :: lentelė ('organizacijos', funkcija ($ lentelė)
$ table-> sveikasis skaičius ('dydis') -> po ('vardas') -> niekinis ();
);

Tokiu atveju „Laravel“ įdės naują stulpelį iškart po pavadinimo stulpelio, kad jis atrodytų gražiai ir būtų sutvarkytas daug geriau.

Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...