Otra alternativa a las mencionadas si necesita hacer esto varias veces con las mismas migraciones. Personalmente, creo que esto agrega mucha flexibilidad a sus migraciones.
Agregue database/migrationsa su objeto de carga automática de composer.jsonesta manera:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
Luego agregue namespace Database\Migrations;a todos sus archivos de migración.
Luego, ejecuta $ composer dump-autoloadpara actualizar tu composer.lockarchivo.
Luego, suponiendo que su nombre de clase para la migración sea AlterTableWebDirectories, puede crear un comando como este:
$ php artisan make:command DropAlterTableWebDirectories
Y escribe esta lógica en tu handle()método:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
Esto hará exactamente lo que quieras. Si desea disminuir el recuento de migración en lugar de eliminarlo, probablemente pueda descubrir cómo cambiar el DB:rawcomando.
Este comando podría ampliarse para permitirle elegir dinámicamente qué migración está descartando al pasar un argumento al comando.
Luego, cuando esté leyendo para migrar ese archivo nuevamente, simplemente puede ejecutarlo php artisan migratey solo migrará ese archivo .
Este proceso le permite realizar cambios específicos en las migraciones sin tener que realizar una actualización completa y inicializar cada vez.
Personalmente, necesito hacer eso mucho porque mis semillas son bastante grandes.