1
resposta

Erro ao rodar comando php artisan migrate:fresh

Olá, pessoal. Ao executar o comando php artisan migrate:fresh tive o seguinte erro:

PHP Fatal error:  Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use in D:\Projetos\controle-series\vendor\laravel\sanctum\database\migrations\2019_12_14_000001_create_personal_access_tokens_table(1).php on line 7

   Symfony\Component\ErrorHandler\Error\FatalError

  Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use

  at D:\Projetos\controle-series\vendor\laravel\sanctum\database\migrations\2019_12_14_000001_create_personal_access_tokens_table(1).php:7
      3▕ use Illuminate\Database\Migrations\Migration;
      4▕ use Illuminate\Database\Schema\Blueprint;
      5▕ use Illuminate\Support\Facades\Schema;
      6▕
  ➜   7▕ class CreatePersonalAccessTokensTable extends Migration
      8▕ {
      9▕     /**
     10▕      * Run the migrations.
     11▕      *


   Whoops\Exception\ErrorException

  Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use

  at D:\Projetos\controle-series\vendor\laravel\sanctum\database\migrations\2019_12_14_000001_create_personal_access_tokens_table(1).php:7
      3▕ use Illuminate\Database\Migrations\Migration;
      4▕ use Illuminate\Database\Schema\Blueprint;
      5▕ use Illuminate\Support\Facades\Schema;
      6▕
  ➜   7▕ class CreatePersonalAccessTokensTable extends Migration
      8▕ {
      9▕     /**
     10▕      * Run the migrations.
     11▕      *

  1   D:\Projetos\controle-series\vendor\filp\whoops\src\Whoops\Run.php:486
      Whoops\Run::handleError("Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use", "D:\Projetos\controle-series\vendor\laravel\sanctum\database\migrations\2019_12_14_000001_create_personal_access_tokens_table(1).php")

  2   [internal]:0
      Whoops\Run::handleShutdown()

Se não entendi errado, ele diz que não é possível criar a tabela CreatePersonalAccessTokensTable porque a mesma já está em uso. Mas ao usar o comando migrate:fresh, as tabelas não deveriam ser apagadas? O sistema funcionava normalmente antes de realizar o comando. Tentei usar também os comandos: php artisan migrate:rollback e php artisan migrate:reset mas nenhum resolveu. O que posso fazer para corrigir o problema?

1 resposta

Olá, João! Tudo certo?

Peço desculpa pela demora em responder o seu tópico.

Vou estar apontando algumas possíveis soluções para o seu problema:

1 - Caso você tenha duas migrations com nomes relativamente iguais, diferenciando-se em questões de datas, pode ser que o Laravel esteja realizando ambas as migrations. Tomando como base que em ambas as migrations você tenha a tabela, será criada uma e a outra ocasionará esse erro. Para verificar isso, execute isso no terminal na raiz do projeto:

grep -ri 'CreatePersonalAccessTokensTable' database/migrations

2 - Às vezes, o carregamento automático da classe interna do composer causa esse problema. Faça o seguinte para verificar se resolve:

composer install

No mais, caso nenhuma das soluções que lhe passei resolva o seu problema, recomendo que apague todas as suas migrations e refaça elas. É uma forma bruta de resolver o problema, porém, sem mais informações sobre o seu projeto, essa é a única maneira que penso que pode lhe ajudar.

Espero ter ajudo e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.