Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Não estou conseguindo rodar o comando "php artisan migrate"

Ou rodar o comando "php artisan migrate", recebo a seguinte mensagem de erro: C:\Users\favre\Documents\controle-series>php artisan migrate

Illuminate\Database\QueryException : could not find driver (SQL: PRAGMA foreign_keys = ON;)

at C:\Users\favre\Documents\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // If an exception occurs when attempting to run a query, we'll format the error 661| // message to include the bindings with SQL, which will make this exception a 662| // lot more helpful to the developer instead of just the database's errors. 663| catch (Exception $e) {

664| throw new QueryException( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| } 668|

Exception trace:

1 PDOException::("could not find driver") C:\Users\favre\Documents\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

2 PDO::__construct("sqlite:C:\Users\favre\Documents\controle-series\database\database.sqlite", []) C:\Users\favre\Documents\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

Please use the argument -v to see more details.

6 respostas

OI Tomé, aparentemente você está com um problema de driver de comunicação entre sua aplicação e seu banco de dados.

No PHP se trabalha com extensões que geralmente são instaladas de forma global em seu arquivo php.ini, basta retirar o ponto e virgula do começo para que a extensão seja adicionada ao php.

Como verificar se uma extensão está instalada? você pode olhar no seu arquivo php.ini ou pode criar um arquivo index.php e colocar o conteúdo

<?php
phpinfo();
?>

em seu terminal dentro do diretório que escreveu o arquivo você pode rodar o comando:

php -S localhost:8000
// acessar seu navegador a partir de localhost:8000

provavelmente nesse ponto você verá as extensões que estão instaladas em seu computador.

Bom! se estiver utilizando mysql você pode fazer o seguinte, em seu projeto a partir do terminal.

# atualiza os pacotes
composer update

# pede um pacote e adiciona ao projeto
composer require doctrine/dbal

em seu php.ini você pode remover os comentários desta linha

# antes
;extension=pdo_mysql.so

# depois
extension=pdo_mysql.so

caso não resolva é sempre importante você dar uma olhada no console e no que ele retornou, ler as mensagens de erro e Gloogar... daí com certeza vai perceber que outras pessoas já passaram pelo mesmo problema.

pegou a ideia :)

até!

Olá Tomé e André,

A explicação do André já é bem completa, só quero adicionar que como o erro informa o problema é no driver do pdo_sqlite e não do mysql, procura então no seu php.ini por extension=pdo_sqlite para descomentar como o André mostrou acima.

E se tiver dúvidas em como encontrar o arquivo php.ini correto é só executar php --ini no terminal que ele vai mostrar o local do php.ini utilizado.

Bom dia pessoal, Agora está aparecendo outro erro:

C:\Users\favre\Documents\controle-series>php artisan migrate Migration table created successfully.

Symfony\Component\Debug\Exception\FatalThrowableError : syntax error, unexpected ':', expecting ')'

at C:\Users\favre\Documents\controle-series\database\migrations\2020_09_22_125646_criar_tabela_series.php:16 12| * @return void 13| */ 14| public function up() 15| {

16| Schema::create(table:'series',function(Blueprint $table){ 17| $table->string(column:'nome'); 18| }); 19| // 20| }

Exception trace:

1 Illuminate\Filesystem\Filesystem::requireOnce("C:\Users\favre\Documents\controle-series\database\migrations/2020_09_22_125646_criar_tabela_series.php") C:\Users\favre\Documents\controle-series\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php:477

2 Illuminate\Database\Migrations\Migrator::requireFiles() C:\Users\favre\Documents\controle-series\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php:103

Please use the argument -v to see more details.

solução!

Bom dia Tomé,

Remove o column: onde tem $table->string(column:'nome');

Isso é apenas uma ajuda visual do PHPStorm e não parte do código, confere também se isso não acontece em outras partes do código.

Onde estiver com o fundo cinza como table: e column: no exemplo abaixo não faz parte do código, é só uma ajuda visual da IDE:

Agora funcionou, muito obrigado.

Sobre o PHPStorm, existe alguma versão Free?

Sem problemas Tomé, bom saber que deu certo!

Pelo que vi você pode pedir uma licença de estudante (caso seja estudante) no link abaixo:

https://www.jetbrains.com/community/education/#students

Fora isso eles só permitem um teste gratuito de 30 dias.