Se você está recebendo o erro class not found
ao executar o comando php artisan migrate:rollback
em um projeto com o framework Laravel, este artigo mostra como resolver o erro e executar o rollback.
Migrations
Ao trabalhar com migrations, as migrações de bancos de dados no Laravel, principalmente na fase de desenvolvimento inicial de um projeto, usa-se de frequentemente a execução de migrações com o comando php artisan migrate
.
Também é comum retroceder as migrações para realizar acertos nos scripts de migration sem a necessidade de criar novas porções de código para alteração de tabelas, sendo assim o retorno das migrações para melhorias na estrutura do banco de dados é geito com o comando php artisan migrate:rollback
.
Erro class not found ao executar rollback
Exatamente com o retorno de migrações: php artisan migrate:rollback
, a exceção de erro é lançada, infelizmente quando acontece uma vez, acaba acontecendo com uma frequência irritante.
Em geral essa exceção e a mensagem de erro apresentam a seguinte pilha de mensagens no console:
artisan migrate:rollback
PHP Fatal error: Class 'CreateAlunosTable' not found in /var/www/coletor/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php on line 328
PHP Stack trace:
PHP 1. {main}() /var/www/coletor/artisan:0
PHP 2. Illuminate\Foundation\Console\Kernel->handle() /var/www/coletor/artisan:36
PHP 3. Symfony\Component\Console\Application->run() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:94
PHP 4. Symfony\Component\Console\Application->doRun() /var/www/coletor/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP 5. Symfony\Component\Console\Application->doRunCommand() /var/www/coletor/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP 6. Illuminate\Console\Command->run() /var/www/coletor/vendor/symfony/console/Symfony/Component/Console/Application.php:874
PHP 7. Symfony\Component\Console\Command\Command->run() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Console/Command.php:101
PHP 8. Illuminate\Console\Command->execute() /var/www/coletor/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
PHP 9. Illuminate\Container\Container->call() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Console/Command.php:115
PHP 10. call_user_func_array() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Container/Container.php:523
PHP 11. Illuminate\Database\Console\Migrations\RollbackCommand->fire() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Container/Container.php:523
PHP 12. Illuminate\Database\Migrations\Migrator->rollback() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php:59
PHP 13. Illuminate\Database\Migrations\Migrator->runDown() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:172
PHP 14. Illuminate\Database\Migrations\Migrator->resolve() /var/www/coletor/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:219
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateAlunosTable' not found
Corrigindo a exceção do php artisan migrate:rollback
A correção deste pequeno entrave é muito simples, e muito corriqueira no dia-a-dia de desenvolvimento com Laravel e os autoloadings do PSR-4 criados e organizados pelo Composer.
A causa na maioria das vezes é a falta de atualização do arquivo de autoload gerado pelo Composer. Por diversos motivos isto pode acontecer.
Para corrigir, execute o dump autoloading do composer na linha de comando do terminal no diretório raiz do seu projeto:
composer dump-autoload
Caso o problema persista, primeiro limpe o cache de compilação gerado pelo dump anterior e executar novamente o comando:
php artisan clear-compiled
composer dump-autoload
Se ainda assim o cache compilado não for atualizado, pode ser necessário excluir manualmente o arquivo vendor/compiled.php
e então executar os passos acima novamente.
php artisan migrate:rollback sem erros
Após as atualizações do autoload e limpezas de cache realizadas, o resultado esperado:
php artisan migrate:rollback
Rolled back: 2018_05_14_184235_create_alunos_uepg_table
Rolled back: 2018_05_13_184235_create_convenios_table
Rolled back: 2018_05_12_184235_create_pais_table
Comentários