Eine weitere Alternative zu den genannten, wenn Sie dies einige Male mit denselben Migrationen durchführen müssen. Persönlich denke ich, dass dies Ihren Migrationen viel Flexibilität verleiht.
Fügen Sie database/migrations
Ihrem Autoload-Objekt Folgendes hinzu composer.json
:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
Dann füge hinzu namespace Database\Migrations;
dann alle Ihre Migrationsdateien hinzu.
Dann laufen Sie $ composer dump-autoload
, um Ihre zu aktualisierencomposer.lock
Datei .
Unter der Annahme, dass Ihr Klassenname für die Migration lautet AlterTableWebDirectories
, können Sie einen Befehl wie den folgenden erstellen:
$ php artisan make:command DropAlterTableWebDirectories
Und schreiben Sie diese Logik in Ihre handle()
Methode:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
Dies wird genau das tun, was Sie wollen. Wenn Sie die Anzahl der Migrationen verringern möchten, anstatt sie zu löschen, können Sie wahrscheinlich herausfinden, wie Sie die Anzahl ändern könnenDB:raw
Befehl .
Dieser Befehl kann erweitert werden, damit Sie dynamisch auswählen können, welche Migration Sie löschen möchten, indem Sie ein Argument an den Befehl übergeben.
Wenn Sie dann lesen, um diese Datei erneut zu migrieren, können Sie sie einfach ausführen php artisan migrate
und sie migriert nur diese.
Mit diesem Prozess können Sie bestimmte Änderungen an Migrationen vornehmen, ohne jedes Mal eine vollständige Aktualisierung und einen Startwert vornehmen zu müssen.
Persönlich muss ich das viel tun, weil meine Samen ziemlich groß sind.