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/migrations
a su objeto de carga automática de composer.json
esta 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-autoload
para actualizar tu composer.lock
archivo.
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:raw
comando.
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 migrate
y 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.