A „Migrate: Frissítés” és a „Migrate: Reset” parancsok egyaránt kapcsolódnak az adatbázis -migrációk kezeléséhez, de különböző célokat szolgálnak, és különféle módon viselkednek az adatbázis -sémakezelés során. Különbségük megértése elengedhetetlen a Laravel fejlesztői számára, hogy hatékonyan kezeljék az adatbázis -állapotokat a fejlesztés vagy a telepítés során.
Migrate: Frissítés
A „PHP kézműves migrátum: frissítés parancsot használnak az összes migráció visszaszorítására, majd újra futtatására. Ez azt jelenti, hogy visszahúzza minden alkalmazott migrációt (végrehajtva az egyes migráció „lefelé ()” módszerét), majd az összes migrációhoz újra futtatja a „UP ()” módszert az adatbázis -séma újjáépítésére a semmiből.
- Mit csinál:
- Visszaállítja az összes vándorlást (visszavonja az összes séma változást).
- Az összes migrációt újra futtatja az adatbázis-séma újjáépítéséhez.
- Tipikus felhasználási esetek:
- Hasznos, ha vissza szeretné állítani az adatbázis -sémát, miközben az adatbázis -struktúrát az áttelepítések révén következetesen tartja.
- Lehetővé teszi a migrációk tesztelését annak biztosítása érdekében, hogy azok többször tisztán alkalmazhassanak.
-Gyakran kombinálva a "-mage" opcióval ("PHP Artisan Migrate: Frissítés-Seed") az adatbázis újjáépítése után az újjáépítés után.
- Előnyök:
- Az adatbázis -struktúrát konzisztensnek tartja a "le ()" és a "UP ()" módszerek megfelelő alkalmazásával.
-szelektíven frissítheti a korlátozott számú migrációt a `-step` opcióval (például a` PHP Artisan Migrate: Frissítés-Step = 5` visszahúzza és újra futtatja az utolsó öt migrációt).
- Teljesítmény:
- Lassabb lehet, mint a „migráció: friss”, amikor nagyszámú migrációval foglalkozik, mert végrehajtja a „le ()” módszert az egyes migrációhoz, mielőtt újra bejelenti őket.
- Adatok:
- Mivel visszahúzza az összes migrációt, a táblázatokban szereplő adatok elvesznek, hacsak nem veszik figyelembe.
- Megőrzi a vándorlás belsejében meghatározott visszalépési logikát, így megakadályozhatja az inkonzisztenciákat, ha a migrációt gondosan megírják.
Migrate: Visszaállítás
A `PHP Artisan Migrate: Reset` parancs visszaszorítja az összes alkalmazott migrációt, és az adatbázist visszaadja az eredeti, nem migrált állapotába.
- Mit csinál:
- Az összes migrációt visszahúzza az összes migráció „le ()” módszerének végrehajtásával.
- A „frissítéssel” ellentétben, nem futtatja újra a migrációt.
- Tipikus felhasználási esetek:
- Hasznos, ha az összes migrációt teljesen meg akarja vonni anélkül, hogy újra bejelentené őket.
- Segít olyan forgatókönyvekben, amikor a sémát teljesen meg kell törölnie, mielőtt eldöntené, mit kell tennie.
- Előnyök:
- Törölje az összes migráció-alapú adatbázis-séma változását.
- Adatok:
- Mint a „frissítés” esetén, a migráció visszahúzása a táblázatok elvesztését eredményezi.
- Nem létezik séma, ha az összes vándorlás visszaáll.
- Viselkedés:
- Az adatbázist nem migrált állapotban hagyja el.
- A „PHP kézműves migrátum” manuálisan történő futtatásához szükséges, ha a séma újjáépítését szándékozik.
További kontextus: Migráció: Friss összehasonlítás
Noha közvetlenül nem kérdezik, a „Migration: Fresh” parancs gyakran összetéveszthető a „frissítés” és a „visszaállítás” és a különbségek további tisztázásában:
- `PHP Artisan Migrate: A Fresh` az adatbázis összes tábláját közvetlenül eldobja, anélkül, hogy futtatná a` le () módszereket, majd futtatja az összes migrációt.
- Ez gyorsabb, mert ahelyett, hogy a migrációval visszahúzza a migrációval, csak leesik az összes asztal.
- Ideális fejlesztési környezetekhez, ahol az adatbázis tisztításának törlése nem váltható logika nélkül.
-Mint a „frissítés”, kombinálható a „ve” -vel az adatok újratelepítéséhez (például `migráció: friss-veed”.
A különbségek mélyebb magyarázata
- Hogyan történik a visszalépés:
- A „frissítés” és a „reset” egyaránt támaszkodnak a „le ()” módszerekre az egyes migráció visszavonásához.
- A `reset` mindent visszahúz, és megáll.
- A „Frissítés mindent visszahúz, majd mindent újra vándorol.
- Adatbázis állapot a parancs után:
- A „reset” után az adatbázis -séma üres (a migrációktól nincs táblázat).
- A „frissítés” után az adatbázis -sémát úgy alakítják ki, mintha frissen vándorolna.
- Adatvesztés:
- Mindkét parancs adatveszteséget okoz, mivel az összes migrációt teljes mértékben visszahúzzák.
-A „Frissítés automatikusan újból bevezetheti a vetőmag-adatokat, ha a` -mage ”zászlót használják.
- Használjon eseteket a fejlesztési életciklusban:
- Használja a „Frissítést” a migráció fejlesztése vagy tesztelése során, és újjáépíteni szeretné a sémáját, miközben esetleg újraindítja az adatokat.
- Használja a „Reset” -et az új migráció kézi alkalmazása vagy egy friss migráció futtatása előtt a migrációs séma teljes tisztításához.
Gyakorlati megjegyzések a Laravel fejlesztői számára
- Mindkét parancs attól függ, hogy a migrációt megfelelően szkriptják a "UP ()" és a "Down ()" módszerekkel, ami azt jelenti, hogy ha a "Down ()" módszerek hiányoznak vagy hiányosak, akkor a visszacsatolási parancsok ("frissítés" és a "reset") meghibásodhatnak, vagy az adatbázist következetlen állapotban hagyhatják.
- A „Frissítés biztonságosabbnak tekinthető, mint a„ Fresh ”olyan környezetben, ahol tiszteletben tartani szeretné a visszalépési logikát és a potenciális adatkapcsolatot a migráció során.
- Egyik parancsot sem szabad gondatlanul használni a gyártási adatbázisokban biztonsági mentések nélkül, mivel minden adat elveszik.
- Elsősorban a helyi fejlesztési vagy tesztelési környezetben való felhasználásra tervezték, ahol a séma iteráció gyakori, és az adatok következménye nélkül visszaállíthatók.
Összegzés
A legfontosabb megkülönböztetés:
- Migráció: Frissítés - Tekerje vissza az összes migrációt, majd futtassa újra az összes migrációt.
- Migráció: Visszaállítás - Vissza az összes migrációt, de ne működtesse újra őket.
`Migration: Frissítés hatékonyan újjáépíti a sémát a semmiből a visszalépés és a migráció útján, lehetővé téve az újbóli megjelenítést és a lépésenkénti frissítést, míg a„ Migration: Reset ”egyszerűen visszaküldi az adatbázist egy nem vándorolt állapotba.
Mindkét parancs alapvető eszköz a Laravel fejlesztői számára az adatbázis -verziók kezelésére, ám különféle munkafolyamatokat szolgálnak, és egyedi hatással vannak az adatbázis állapotára.
Ez a megértés elősegíti a megfelelő parancs kiválasztását az alkalmazásfejlesztés, a tesztelés és a telepítés különböző szakaszaihoz.
Minden felhasználásnak figyelembe kell vennie az adatvesztés, az alkalmazás séma konzisztenciájának és a fejlesztői szándéknak az adatbázis -migráció kezelésére irányuló szándékát egy Laravel -projekten belül.