Outra alternativa às mencionadas, se você precisar fazer isso várias vezes com as mesmas migrações. Pessoalmente, acho que isso adiciona muita flexibilidade às suas migrações.
Adicione database/migrations
ao seu objeto de carregamento automático composer.json
como este:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
Em seguida, adicione namespace Database\Migrations;
a todos os seus arquivos de migração.
Em seguida, execute $ composer dump-autoload
para atualizar seu composer.lock
arquivo.
Então, supondo que o nome da sua classe para a migração seja AlterTableWebDirectories
, você pode criar um comando como este:
$ php artisan make:command DropAlterTableWebDirectories
E escreva esta lógica no seu handle()
método:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
Isso fará exatamente o que você deseja. Se você quiser diminuir a contagem de migração em vez de excluí-la, provavelmente poderá descobrir como alterar oDB:raw
comando.
Esse comando pode ser estendido para permitir que você escolha dinamicamente qual migração você está eliminando, passando um argumento para o comando.
Então, quando você estiver lendo para migrar esse arquivo novamente, basta executar php artisan migrate
e ele apenas migrará esse .
Esse processo permite que você faça alterações específicas nas migrações sem precisar fazer uma atualização completa e propagar cada vez.
Pessoalmente, preciso fazer muito isso porque minhas sementes são bastante grandes.