Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kāda ir atšķirība starp migrāciju: atsvaidzināšana un migrācija: atiestatīšana laravel


Kāda ir atšķirība starp migrāciju: atsvaidzināšana un migrācija: atiestatīšana laravel


Komandas “Migrate: atsvaidzināšana” un `migrēt: atiestatīt” gan Laravelā ir saistītas ar datu bāzes migrācijas pārvaldību, bet datu bāzes shēmas pārvaldības laikā tās kalpo dažādiem mērķiem un uzvedas atšķirīgi. Izpratne par to atšķirībām ir būtiska, lai Laravel izstrādātāji attīstības vai izvietošanas laikā efektīvi apstrādātu datu bāzes stāvokļus.

Migrēt: atsvaidzināt

Komanda “PHP amatnieks migrē: atsvaidzina” tiek izmantota, lai atgūtu visu migrāciju un pēc tam tos visus atkal palaistu. Tas nozīmē, ka tas atgūst katru piemēroto migrāciju (izpildot katras migrācijas metodi “Down ()” un pēc tam atkal palaiž “uz augšu ()” metodi katrai migrācijai, lai atjaunotu datu bāzes shēmu no nulles.

- Ko tas dara:
- Atjauno visu migrāciju (atsauc visas shēmas izmaiņas).
- atkārtoti pārņem visu migrāciju, lai atjaunotu datu bāzes shēmu.
- Tipiski lietošanas gadījumi:
- Noderīgs, ja vēlaties atiestatīt datu bāzes shēmu, vienlaikus saglabājot datu bāzes struktūru konsekventu, izmantojot migrāciju.
- Ļauj migrēt testēšanu, lai pārliecinātos, ka tos var uzklāt vairākas reizes.
-bieži apvienojumā ar opciju “-seste” (`php amatnieks migrē: atsvaidzina-sēklu`), lai pēc to atjaunošanas atjaunotu datu bāzi ar sēklu datiem.
- priekšrocības:
- uztur datu bāzes struktūru konsekventu, pareizi pielietojot `lejā () un` uz augšu () `metodes.
-Var selektīvi atsvaidzināt ierobežotu skaitu migrācijas, izmantojot opciju `-SPEP` (piemēram,“ PHP Artisan migrate: atsvaidzina-pakāpiens = 5` atgriezīsies un atkārtoti izpildīs pēdējās piecas migrācijas).
- Veiktspēja:
- Var būt lēnāks nekā `migrēt: svaigi`, strādājot ar lielu skaitu migrācijas, jo tā izpilda katras migrācijas metodi, pirms tās atkārtoti uzklājiet.
- dati:
- Tā kā tā atgūst visu migrāciju, dati tabulās tiks zaudēti, ja vien tie nav atkārtoti sēklas.
- saglabā atcelšanas loģiku, kas definēta migrācijas iekšpusē, tāpēc tā var novērst neatbilstības, ja migrācija tiek rūpīgi uzrakstīta.

Migrēt: atiestatīt

`PHP amatnieks migrē: Reset` Komanda atgūst visas piemērotās migrācijas, atdodot datu bāzi sākotnējā nemigrētajā stāvoklī.

- Ko tas dara:
- atgūst visas migrācijas, izpildot katras migrācijas metodi uz leju ().
- Atšķirībā no “atsvaidzināšanas”, tas neatkārto migrāciju.
- Tipiski lietošanas gadījumi:
- Noderīgs, ja vēlaties pilnībā atsaukt visu migrāciju, to atkārtoti atkārtoti.
- Palīdz scenārijos, kad jums pilnībā jāiztīra shēma, pirms izlemj, ko darīt tālāk.
- priekšrocības:
- Notiek visas migrācijas datu bāzes shēmas izmaiņas.
- dati:
- Tāpat kā ar “atsvaidzināšanu”, migrācijas atjaunošana izraisa tabulas datu zaudēšanu.
- Kad visas migrācijas tiks atiestatītas, nav shēmas.
- uzvedība:
- atstāj datu bāzi nemigrētā stāvoklī.
- Nepieciešama manuāla vadīšana `PHP amatnieks migrē pēc tam, ja plāno atjaunot shēmu.

Papildu konteksts: migrēt: svaiga salīdzināšana

Lai arī tas netiek tieši lūgts, komanda “Migrate: Fresh` bieži tiek sajaukta ar` atsvaidzināšanu ”un“ atiestatīšanu ”un palīdz sīkāk noskaidrot atšķirības:

- `PHP amatnieks migrē: svaiga` nokrīt visas tabulas datu bāzē tieši, neizmantojot“ uz leju () metodes, pēc tam palaiž visas migrācijas.
- Tas ir ātrāk, jo tā vietā, lai atgūtu migrāciju ar migrāciju, tas vienkārši nomet visas tabulas.
- Ideāli piemērots attīstības videi, kur ir pieņemama datu bāzes tīrīšana bez atcelšanas loģikas.
-Tāpat kā `atsvaidzināšana", to var apvienot ar `-sesti", lai atjaunotu datus (piemēram, “migrēt: svaigu-sēklu`).

dziļāks atšķirību skaidrojums

- Kā notiek atcelšana:
- `atsvaidzināšana` un` atiestatīšana` abi paļaujas uz katras migrācijas uz atsaukšanas shēmas izmaiņām "Down ()" metodēs.
- `Atiestatīt` visu ripo atpakaļ un apstājas.
- `Atsvaidzināšana" visu atgūst un pēc tam visu atkal migrē.
- datu bāzes stāvoklis pēc komandas:
- Pēc "atiestatīšanas" datu bāzes shēma ir tukša (nav tabulu no migrācijas).
- Pēc "atsvaidzināšanas" datu bāzes shēma tiek pārbūvēta it kā svaigi migrēta.
- datu zudums:
- Abas komandas izraisa datu zaudēšanu, jo visas migrācijas tiek pilnībā atgūtas.
-`Atsvaidzināšana` var automātiski atkārtoti ieviest sēklu datus, ja tiek izmantots karogs` seste`.
- Lietošanas gadījumi attīstības dzīves ciklā:
- Izstrādājot vai pārbaudot migrāciju, izmantojiet `atsvaidzināšanu”, un vēlaties atjaunot savu shēmu, iespējams, atjaunojot datus.
- Izmantojiet `atiestatīšanu”, lai pilnībā notīrītu migrācijas shēmu, pirms manuāli pielieto jaunu migrāciju vai jaunu migrācijas vadīšanu.

Praktiskas piezīmes laravel izstrādātājiem

- Abas komandas ir atkarīgas no migrācijas, kas tiek pareizi skriptētas ar `UP ()` un `Down ()` metodēm, kas nozīmē, ja “uz leju () metodēm trūkst vai ir nepilnīgas, atcelšanas komandas (` atsvaidzināšana ”un` atiestatīšana ”var neizdoties vai atstāt datu bāzi neatbilstīgā stāvoklī.
- `atsvaidzināšana` var uzskatīt par drošāku nekā` svaigu` vidē, kur migrācijas laikā vēlaties ievērot atcelšanas loģiku un iespējamās datu attiecības.
- Neviena no komandām neuzmanīgi nedrīkst izmantot ražošanas datu bāzēs bez dublējumiem, jo ​​visi dati tiks zaudēti.
- Tie galvenokārt ir paredzēti izmantošanai vietējā attīstības vai testēšanas vidē, kur bieži notiek shēmas iterācija un datus var atiestatīt bez sekām.

kopsavilkums

Galvenā atšķirība ir:

- Migrēt: atsvaidziniet - atgūstiet visu migrāciju, pēc tam atkal veiciet visu migrāciju.
- Migrēt: atiestatīt - atgūstiet visu migrāciju, bet neveiciet tās atkārtoti.

`Migrēt: atsvaidzināšana` efektīvi atjauno shēmu no nulles, izmantojot atgriezenisko saiti un migrējiet, ļaujot atkārtoti sēklu un pakāpeniski atsvaidzināt, kamēr“ migrē: atiestatīšana ”vienkārši atgriež datu bāzi neierobežotā stāvoklī.

Abas komandas ir fundamentāli rīki, lai Laravel izstrādātāji pārvaldītu datu bāzes versijas, taču tās apkalpo dažādas darbplūsmas un unikālas ietekmes uz datu bāzes stāvokli.

Šī izpratne palīdz izvēlēties pareizo komandu dažādiem lietojumprogrammu izstrādes, testēšanas un izvietošanas posmiem.

Katrā lietojumā jāapsver ietekme uz datu zudumu, lietojumprogrammu shēmas konsekvenci un izstrādātāja nodomu pārvaldīt datu bāzes migrāciju laravel projektā.