Jak vrátit zpět konkrétní migrační soubory v Laravelu
Vracení migrací zpět je běžnou součástí vývoje Laravelu. Může se stát, že přidáte migraci, otestujete ji a pak potřebujete vrátit zpět pouze tuto konkrétní změnu, aniž by to mělo vliv na ostatní. Laravel to umožňuje prostřednictvím funkce --path umožňuje přesně zacílit na jednotlivé migrační soubory.
Pochopení zpětné migrace Laravelu
Migrace Laravel jsou soubory s databázovým schématem řízené verzí. Když spustíte php artisan migrate, každý migrační soubor se provede v pořadí a jeho název se zaznamená do pole migrations tabulka.
Pro zrušení migrace nabízí Laravel následující klíčové příkazy:
php artisan migrate:rollbackphp artisan migrate:resetphp artisan migrate:refresh
Každou z nich lze kombinovat s --path možnost vrátit zpět konkrétní soubory namísto všech migrací.
Zpětné vrácení konkrétního migračního souboru
Pokud chcete vrátit zpět jednotlivá specifická migrace, použijte migrate:rollback příkazem --path možnost.
php artisan migrate:rollback --path=/database/migrations/2024_11_04_123456_create_orders_table.php
Jak to funguje
- Na stránkách
--pathříká Laravelu, na který migrační soubor se má zaměřit. - Cesta by měla být relativně k základnímu adresáři projektu Laravel.
- Laravel provede příkaz
down()pouze pro tento konkrétní migrační soubor.
Jedná se o nejpřímější a nejsprávnější způsob, jak vrátit jednu migraci zpět, aniž by se to dotklo ostatních.
Zpětné vrácení více konkrétních migračních souborů
Můžete vrátit více konkrétních souborů zadáním každého z nich. --path argument individuálně:
php artisan migrate:rollback \--path=/database/migrations/2024_11_04_123456_create_orders_table.php \--path=/database/migrations/2024_11_04_123457_add_status_to_orders_table.php
Každý uvedený soubor bude mít svůj down() prováděné v pořadí, přičemž se vrátí zpět pouze tyto migrace.
Obnovení nebo aktualizace konkrétních migračních souborů
Kromě možnosti vrátit se zpět vám Laravel umožňuje také resetování or refresh specifické migrace.
Obnovení specifické migrace
Úplné obnovení (vrácení všech migrací), ale omezení vrácení na určité soubory:
php artisan migrate:reset --path=/database/migrations/2024_11_04_123456_create_orders_table.php
Specifická migrace pro obnovení
Zpětné vrácení a opětovné spuštění stejné migrace (užitečné při testování):
php artisan migrate:refresh --path=/database/migrations/2024_11_04_123456_create_orders_table.php
Tento příkaz:
- Spusťte
down()(rollback). - Okamžitě spusťte
up()znovu použít metodu (znovu aplikovat migraci).