laravel

Laravel Kā esošai tabulai pievienot kolonnu

Laravel Kā esošai tabulai pievienot kolonnu

Problēma

Jauna kolonnu pievienošana Laravel migrācijām ir izplatīta lieta. Lietojumprogrammas ir domātas mērogojamam, kas nozīmē, ka jaunu funkciju pievienošana turpina attīstīt jūsu lietojumprogrammu.

Ļoti bieži jaunajiem Laravel izstrādātājiem ir jāveic migrācija, taču viņi nepārliecinās, ka migrācijas var atgriezties un migrēt vairākas reizes, neko nesalaužot.

Lai gan tas nav mūsu uzmanības centrā, es domāju, ka bija svarīgi to paziņot, pirms ķeramies pie savas problēmas.

Šis ir izplatīts jautājums, ko mēģinās izdarīt jaunie Laravel izstrādātāji, kad viņi vēlas pievienot jaunu kolonnu esošai tabulai.

Tātad šajā brīdī viņi jau izdarīja kaut ko līdzīgu:

publiska funkcija uz augšu ()

Shēma :: izveidot ('organizācijas', funkcija ($ tabula)
$ tabula-> pieaugums ('id');
$ table-> string ('name') -> nullable ();
$ table-> text ('about') -> nullable ();
);

Tas viņiem izveidos jaunu tabulu. Lai to padarītu tīru, jums arī jāpievieno lejupvērstā funkcija un šajā gadījumā vienkārši jānomet viss jūsu galds. Lejupielādes funkcija tiks darbināta, kad vēlaties atjaunot migrāciju.

Pārlūkojot visu to, reālā problēma parādās, kad viņi aizmirst vienu kolonnu un vēlas to pēc tam pievienot, lai izveidotu jaunu migrācijas failu (klasi), mēģinot palaist kaut ko līdzīgu:

publiska funkcija uz augšu ()

Shēma :: izveidot ('organizācijas', funkcija ($ tabula)
$ table-> integer ('size') -> nullable ();
);

Viņi cer esošajai tabulai pievienot jaunu kolonnas izmēru.

Tagad redzēsim, kas notiek un kā novērst tā atkārtošanos.

Risinājums

Šeit galvenā problēma ir tā, ko jaunie izstrādātāji bieži mēdz nepamanīt, kas ir shēmas statiskās metodes nosaukums . Izveidot izmantojat tikai tad, kad sākotnēji veidojat savu tabulu. Ja jums jebkurā laikā ir jāatjaunina tabula, tā vietā vēlaties izmantot tabulu.

Tātad reālajai funkcijai jābūt šādai:

publiska funkcija uz augšu ()

Shēma :: tabula ('organizācijas', funkcija ($ tabula)
$ table-> integer ('size') -> nullable ();
);

Un uz leju funkcija būtu šāda:

publiska funkcija uz leju ()

Shēma :: tabula ('organizācijas', funkcija ($ tabula)
$ table-> dropColumn ('izmērs');
);

Mans personīgais ieteikums jums ir tāds, ka pēc jaunā (mainīgā) migrācijas faila izveidošanas rīkojieties šādi:

Vēl viens padoms

Tas būs noderīgi vēlāk, ja vēlaties automatizēt izvietošanu un skriptam ir jāpalaiž atpakaļ.

Vēl viens padoms, ko es jums varu dot, ir plānot vietu, kur vēlaties ievietot kolonnu. Vienkārši to darot, Laravel ievietos jūsu jauno kolonnu beigās, iespējams, pēc slejas updated_at. (Lielākajā daļā tabulu ir šāds)

Jūs vēlaties izmantot metodi pēc tam, lai jūsu gala kods izskatītos šādi:

publiska funkcija uz augšu ()

Shēma :: tabula ('organizācijas', funkcija ($ tabula)
$ table-> integer ('size') -> after ('name') -> nullable ();
);

Šajā gadījumā Laravel ievietos jauno kolonnu tieši aiz nosaukuma kolonnas, lai tā izskatās jauki un sakārtota daudz labāk.

Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...