Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaký je rozdíl mezi migrátem: Obnovení a migrace: Resetování v Laravelu


Jaký je rozdíl mezi migrátem: Obnovení a migrace: Resetování v Laravelu


Příkazy `migrace: obnovení: a` migrace: resetování v Laravelu souvisejí s správou migrací databáze, ale během správy databázového schématu slouží různým způsobem a chovají se různými způsoby. Pochopení jejich rozdílů je pro vývojáře Laravel zásadní, aby během vývoje nebo nasazení efektivně zpracovávali stavy databáze.

Migrate: Refresh

Příkaz `PHP Artisan migruje: Refresh` se používá k odvrácení všech migrací a poté je znovu spusťte. To znamená, že se vrátí zpět každou aplikovou migraci (provedení metody „dolů ()“ každé migrace) a poté znovu spustí metodu `nahoru ()` pro každou migraci pro přestavbu schématu databáze od nuly.

- Co to dělá:
- Vrátí zpět všechny migrace (zruší všechny změny schématu).
- Znovu spustí všechny migrace k přestavbě schématu databáze.
- Typické případy použití:
- Užitečné, když chcete resetovat schéma databáze a zároveň udržet strukturu databáze konzistentní prostřednictvím migrace.
- Umožňuje testování migrací, aby bylo zajištěno, že je lze několikrát aplikovat.
-Často v kombinaci s možností `-seed` (` PHP Artisan Migrate: Refresh --seed`) pro osídlení databáze s údaji semen po její přestavbě.
- Výhody:
- Udržuje konzistentní strukturu databáze správným aplikací metod `down ()` a `nahoru ()`.
-Může selektivně obnovit omezený počet migrací pomocí možnosti `--Step` (např.„ Php Artisan migruje: obnovit--Step = 5` se vrátí zpět a znovu spustí posledních pět migrací).
- výkon:
- může být pomalejší než `migrace: Fresh` Při jednání s velkým počtem migrací, protože provádí metodu` dolů () `pro každou migraci před jejich opětovným použitím.
- Data:
- Protože se vrátí zpět všechny migrace, budou data v tabulkách ztracena, pokud nebudou znovu naozovány.
- Zachovává logiku vrácení vrácení definované vnitřní migrace, takže může zabránit nekonzistentnosti, pokud jsou migrace pečlivě napsány.

Migrate: Reset

Příkaz `PHP Artisan migruje: Reset` se vrací zpět všechny použité migrace, které vrátí databázi do původního nemigrovaného stavu.

- Co to dělá:
- Vrátí zpět všechny migrace provedením metody `dolů ()` každé migrace.
- Na rozdíl od „obnovení“ se migrace znovu nespustí.
- Typické případy použití:
- Užitečné, když chcete úplně vrátit všechny migrace, aniž byste je znovu aplikovali.
- Pomáhá ve scénářích, kde musíte schéma zcela vyčistit, než se rozhodnete, co dělat dál.
- Výhody:
- Vymaže všechny změny schématu schématu databáze založené na migraci.
- Data:
- Stejně jako u „obnovení“, i migrace zpět vede ke ztrátě tabulkových dat.
- Jakmile budou všechny migrace resetovány žádné schéma.
- chování:
- opouští databázi v nemigrovaném stavu.
- vyžaduje ruční spuštění „PHP řemeslníka migruje“ poté, pokud má v úmyslu schéma přestavět.

Další kontext: Migrate: Čerstvé srovnání

Ačkoli to, že se nepožádá přímo, je příkaz „migruje: Fresh“ často zaměňován s „obnovovacím“ a „resetem“ a pomáhá dále objasnit rozdíly:

- `PHP Artisan Migrate: Fresh` Druhá všechny tabulky v databázi přímo, bez spuštění metod` Down () `, poté spustí všechny migrace.
- Je to rychlejší, protože místo toho, aby se migraci migrace zabývaly zpět, jen upustí všechny tabulky.
- Ideální pro vývojová prostředí, kde je přijatelné otíhání databáze bez logiky pro vrácení.
-Stejně jako `Refresh`, může být kombinován s`-seed` pro osídlení dat (např. „Migrate: Fresh-seed`).

Hlubší vysvětlení rozdílů

- Jak se stane vrácení:
- `Refresh` a` reset` se spoléhají na metody `dolů ()` každé migrace, aby se změnily schéma.
- `Reset` se všechno vrátí a zastaví.
- `` Ofresh "se všechno vrátí a pak vše znovu migruje.
- Stav databáze po příkazu:
- Po „resetu“ je schéma databáze prázdné (žádné tabulky z migrace).
- Po „obnovení“ je schéma databáze přestavěno, jako by se čerstvě migrovalo.
- Ztráta dat:
- Oba příkazy způsobují ztrátu dat, protože všechny migrace jsou plně převráceny zpět.
-„Obnovit“ může automaticky automaticky znovu zavést data semen, pokud se použije příznak `-seed`.
- Případy použití v životním cyklu vývoje:
- Při vývoji nebo testování migrací použijte `` ‘Refresh` a chcete znovu vybudovat své schéma a zároveň je možné opětovně nasadit data.
- Pomocí „resetujte“ k úplnému vymazání schématu migrace před použitím nových migrací ručně nebo spuštěním čerstvého migrace.

Praktické poznámky pro vývojáře Laravel

- Oba příkazy závisí na tom, že migrace jsou správně skriptovány pomocí metod `nahoru ()` a `down ()`, což znamená, že metody `down ()` chybí nebo neúplné, mohou příkazy vrácení (`` `resetovat`) selhat nebo nechat databázi v nekonzistentním stavu.
- „Obnovit“ lze považovat za bezpečnější než „čerstvé“ v prostředích, kde chcete respektovat logiku vrácení a potenciální datové vztahy během migrace zpět.
- Žádný příkaz by neměl být používán neopatrně na produkčních databázích bez záloh, protože všechna data budou ztracena.
- Jsou primárně navrženy pro použití v prostředí místního vývoje nebo testování, kde je iterace schématu častá a data mohou být resetována bez následků.

Shrnutí

Klíčovým rozlišením je:

- Migrujte: Obnovit - Vraťte všechny migrace zpět a poté znovu spusťte všechny migrace.
- Migrate: Resetujte - Vraťte se zpět všechny migrace, ale neotevřete je.

`migrace: Refresh` efektivně přestavění schématu od nuly prostřednictvím vrácení a migrace, umožňuje opakování a postupné obnovení, zatímco„ migruje: reset “jednoduše vrátí databázi do neligrovaného stavu.

Oba příkazy jsou základními nástroji pro vývojáře Laravel pro správu databázových verzí, ale slouží různým pracovním postupem a mají jedinečné dopady na stav databáze.

Toto porozumění pomáhá při výběru správného příkazu pro různé fáze vývoje aplikací, testování a nasazení.

Každé použití by mělo zvážit důsledky pro ztrátu dat, konzistenci schématu aplikace a záměr vývojáře pro správu migrací databáze v rámci projektu Laravel.