Inna alternatywa dla tych wymienionych, jeśli musisz to zrobić kilka razy z tymi samymi migracjami. Osobiście uważam, że zapewnia to dużą elastyczność migracji.
Dodaj database/migrations
do obiektu autoload w composer.json
podobny sposób:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
Następnie dodaj namespace Database\Migrations;
do wszystkich plików migracji.
Następnie uruchom, $ composer dump-autoload
aby odświeżyćcomposer.lock
plik.
Następnie, zakładając, że twoja nazwa klasy dla migracji to AlterTableWebDirectories
, możesz utworzyć następującą komendę:
$ php artisan make:command DropAlterTableWebDirectories
I napisz tę logikę w swojej handle()
metodzie:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
To zrobi dokładnie to, co chcesz. Jeśli chcesz zmniejszyć liczbę migracji zamiast ją usunąć, prawdopodobnie możesz dowiedzieć się, jak to zmienićDB:raw
polecenie.
To polecenie można rozszerzyć, aby umożliwić Ci dynamiczny wybór migracji, którą chcesz upuścić, przekazując argument do polecenia.
Następnie, gdy czytasz, aby ponownie migrować ten plik, możesz po prostu uruchomić php artisan migrate
a on migruje tylko ten jeden.
Ten proces umożliwia wprowadzanie określonych zmian w migracji bez konieczności pełnego odświeżania i inicjowania za każdym razem.
Osobiście muszę to często robić, ponieważ moje nasiona są raczej duże.