Príkazy „migrujte: obnovenie“ a `migrujte: reset 'v Laravele súvisia s riadením migrácií databáz, ale slúžia rôznym účelom a počas správy databázových schém sa správajú zreteľne. Pochopenie ich rozdielov je pre vývojárov Laravelu rozhodujúce, aby účinne zvládli stavy databáz počas vývoja alebo nasadenia.
migrácia: Obnoviť
Príkaz `PHP Artisan Migrate: Refresh` sa používa na vrátenie všetkých migrácií a potom ich znova spustiť. To znamená, že vráti späť každú migráciu, ktorá bola použitá (vykonanie metódy `dolu ()` každej migrácie) a potom spustí metódu `up ()` znova pre každú migráciu, aby sa prestavala schéma databázy od nuly.
- Čo to robí:
- vráti všetky migrácie (vráti všetky zmeny schémy).
- Znovu spúšťa všetky migrácie na prestavbu schémy databázy.
- Typické prípady použitia:
- Užitočné, keď chcete resetovať databázovú schému a zároveň udržiavať štruktúru databázy konzistentnú prostredníctvom migrácií.
- Umožňuje testovanie migrácií, aby sa zabezpečilo, že sa dajú čisto používať viackrát.
-často v kombinácii s možnosťou `--eed` (` PHP Artisan Migrate: Refresh --seed`) na opätovné osídlenie databázy so semennými údajmi po jeho prestavbe.
- Výhody:
- Udržiava štruktúru databázy konzistentnú prostredníctvom správneho uplatňovania metód `down ()` a `UP ()`.
-môže selektívne obnoviť obmedzený počet migrácií pomocou možnosti `-tep` (napr.„ Php Artisan Migrate: obnovenie---tep = 5` sa vráti a znovu spustí posledných päť migrácií).
- Výkon:
- môže byť pomalšie ako „migrácia: čerstvé“ pri riešení veľkého počtu migrácií, pretože vykonáva metódu `down () pre každú migráciu pred ich opätovným použitím.
- údaje:
- Keďže vráti všetky migrácie, údaje v tabuľkách sa stratia, pokiaľ sa znovu nezasadia.
- Zachováva logiku vrátenia definovanej vo vnútri migrácií, aby mohla predchádzať nezrovnalostiam, ak sú migrácie starostlivo napísané.
Migrate: Reset
Príkaz `PHP Artisan Migrate: Reset` Vráti späť všetky migrácie, ktoré boli použité, a vráti databázu do pôvodného negramotného štátu.
- Čo to robí:
- vráti všetky migrácie vykonaním metódy `down () ()„ metódy každej migrácie.
- Na rozdiel od „obnovenia“ nekončí migrácie.
- Typické prípady použitia:
- Užitočné, keď chcete úplne zrušiť všetky migrácie bez toho, aby ste ich znovu požiadali.
- Pomáha v scenároch, kde potrebujete úplne vyčistiť schému pred rozhodnutím, čo robiť ďalej.
- Výhody:
- Vymaže všetky zmeny schémy databázy založenej na migrácii.
- údaje:
- Rovnako ako v prípade `refresh`, vedenie migrácií späť vedie k strate údajov o tabuľke.
- Po resetovaní všetkých migrácií nebude existovať žiadna schéma.
- správanie:
- Zanecháva databázu v necigrovanom štáte.
- Vyžaduje ručne prevádzku „PHP Artisan Migrate“, ak má v úmysle znovu vybudovať schému.
Dodatočný kontext: Migrácia: Čerstvé porovnanie
Aj keď sa to nepožiada priamo, príkaz „Migrate: Fresh“ je často zamieňaný s `refresh` a„ reset “a pomáha ďalej objasniť rozdiely:
- `PHP Artisan Migrate: Fresh` odhodí všetky tabuľky v databáze priamo, bez spustenia metód„ down () `, potom spustí všetky migrácie.
- Je to rýchlejšie, pretože namiesto migrácie chrbta migráciou iba spadne všetky tabuľky.
- Ideálne pre vývojové prostredia, v ktorých je prijateľné vymazanie databázy bez logiky spätnej väzby.
-Rovnako ako `refresh`, dá sa kombinovať s` --seed` na opätovné osídlenie údajov (napr. „Migrate: čerstvé --eed`).
hlbšie vysvetlenie rozdielov
- Ako sa stáva rollback:
- `Obnoviť` a` reset` sa spoliehajú na „down ()„ metódy každej migrácie na zmenu schémy späť.
- `Reset` vráti všetko späť a zastaví sa.
- „Obnovenie“ vráti všetko späť a potom všetko znova migruje.
- Stav databázy po príkaze:
- Po `reset` je schéma databázy prázdna (žiadne tabuľky z migrácií).
- Po „obnovení“ je schéma databázy prestavaná, akoby čerstvo migrovala.
- Strata údajov:
- Oba príkazy spôsobujú stratu údajov, pretože všetky migrácie sa úplne vrátia späť.
-`Obnovenie` môže automaticky znovu zaviesť semenné údaje, ak sa použije príznak` --seed`.
- Prípady použitia v životnom cykle vývoja:
- Pri vývoji alebo testovaní migrácií použite „Obnovenie“ a chcete si prestavať svoju schému, zatiaľ čo je možné obnoviť údaje.
- Pred manuálnym použitím nových migrácií alebo spustením čerstvej migrácie použite `reset` na úplné vyčistenie schémy migrácie.
Praktické poznámky pre vývojárov Laravel
- Oba príkazy závisia od toho, že migrácie sú správne skriptované pomocou `UP ()` a `Down ()` Metódy, čo znamená, že ak sú metódy `Down ()` Metódy chýbajúce alebo neúplné, príkazy Rollback (`Obnovenie" a "reset") môžu zlyhať alebo opustiť databázu v nekonzistentnom stave.
- „Obnovenie“ sa dá považovať za bezpečnejšie ako „čerstvé“ v prostrediach, kde chcete rešpektovať logiku vrátenia a potenciálne dátové vzťahy počas migrácie späť.
- Ani jeden príkaz by sa nemal používať neopatrne na výrobné databázy bez záloh, pretože všetky údaje sa stratia.
- Sú primárne navrhnuté na použitie v prostredí miestneho vývoja alebo testovania, kde je častá iterácia schémy a dáta sa dajú resetovať bez následkov.
Zhrnutie
Kľúčové rozlíšenie je:
- Migrate: Obnovte - Zastúpte späť všetky migrácie a potom znova spustite všetky migrácie.
- Migrate: Reset - Zastúpte späť všetky migrácie, ale neopakujte ich.
`Migrate: Obnoviť sa efektívne prestavuje schému od nuly pomocou spätného a migrácie, čo umožňuje opätovné nastavenie a postupne obnovenie, zatiaľ čo„ Migrate: Reset` jednoducho vráti databázu do nemigrovaného stavu.
Oba príkazy sú základnými nástrojmi pre vývojárov Laravel na správu verzií databáz, ale slúžia rôznym pracovným tokom a majú jedinečný vplyv na stav databázy.
Toto porozumenie pomáha pri výbere správneho príkazu pre rôzne fázy vývoja, testovania a nasadenia aplikácií.
Každé použitie by malo zvážiť dôsledky na stratu údajov, konzistentnosť schém aplikačných schém a zámer vývojárov na správu migrácií databáz v rámci projektu Laravel.