1
resposta

Erro ao tentar rodar as migrates e os seed

boa noite amigos, alguem pode da um help com esse erro? obrigado desde ja

INFO Nothing to migrate.

INFO Seeding database.

Database\Seeders\UserSeeder .............................................................................................................. RUNNING

UnexpectedValueException

The stream or file "/app/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'email@example.org' for key 'users.users_email_unique' (Connection: mysql, SQL: insert into users (name, email, email_verified_at, password, remember_token, updated_at, created_at) values (Orval Bins, email@example.org, 2023-10-02 04:22:37, $2y$10$Ist1QC51O14os9ldsSWZlemOKIPuj3k2WviTYwjG2MR9tlgBgoAMW, 1pe4XmHjdh, 2023-10-02 04:22:37, 2023-10-02 04:22:37)) Context: {"exception":{"errorInfo":["23000",1062,"Duplicate entry 'email@example.org' for key 'users.users_email_unique'"],"connectionName":"mysql"}}

at vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:134 130▕ restore_error_handler(); 131▕ if (!is_resource($stream)) { 132▕ $this->stream = null; 133▕ ➜ 134▕ throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $url) . Utils::getRecordMessageForException($record)); 135▕ } 136▕ stream_set_chunk_size($stream, $this->streamChunkSize); 137▕ $this->stream = $stream; 138▕ }

  +10 vendor frames 

11 artisan:35 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

1 resposta

O erro está ocorrendo porque já existe um usuário cadastrado no banco de dados com o e-mail "email@example.org". Caso deseje criar o usuário, caso não exista, ou atualizar, caso exista, você pode utilizar o método updateOrCreate do Laravel (disponível a partir da versão 5.3).

A implementação ficaria assim:

$user = App\User::updateOrCreate(['email' => 'email@example.org'], [
    'name' => 'Orval Bins',
    'verified_at' => '2023-10-02 04:22:37',
    // ...
]);

No código acima, o primeiro parâmetro da função é um array que contém os dados identificadores do usuário. Neste caso, ele tentará encontrar um usuário com o e-mail "email@example.org".

O segundo parâmetro é um array com os valores que você deseja atualizar ou inserir no usuário.

Lembre-se de que os campos como name, email, password, etc., precisam estar no atributo $fillable da sua classe App\User.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software