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

Erro php artisan migrate

Pessoal, estou tentando rodar o php artisan migrate, porém ele dá 2 erros:

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

  2   C:\Users\Felipe\Documents\Laravel\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=laravel", "root", "", [])

Detalhe: Eu segui as configurações da aula pra usar o SQLite e ele tá tentando usar o MySql. Não entendi.

No meu arquivo .env, está assim:

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=laravel
#DB_USERNAME=root
#DB_PASSWORD=

No arquivo database.php, está assim:

'default' => env('DB_CONNECTION', 'sqlite'),

No php.ini, está descomentado o pdo e o sqlite3:

extension=pdo_sqlite
 extension=sqlite3

O que perdi?? Fiz a instalação do PHP baixando do site conforme instruções do video, instalei o composer e lavarel também conforme instruções do video. Tudo até então rodando normal, só tá estranho esse migrations falando de mysql ai. Estou usando windows.

5 respostas

João, ele aparenta estar tentando utilizar o mysql, e não o sqlite. O arquivo .env está com o nome correto? Não está com alguma outra extensão? Tem algum outro .env no projeto, como .env.testing, .env.prod, etc?

Exatamente, ele está tentando usar o mySql apesar de em todos os lugares eu ter colocado pra usar o SQLite conforme as aulas. Existe apenas 1 arquivo .env que se chama... .env rs. Não existe nenhum outro arquivo .env. Aqui está o conteúdo do meu arquivo .env (Veja que o Db_COnnection está como sqlite e os demais parametros abaixo estão comentados):

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:ic3YP6F5FYUIUoL5vtwM8AHmAE/OeRh4wqxv6ti4lmg=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=laravel
#DB_USERNAME=root
#DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Segue erro completo que ocorre:

  Illuminate\Database\QueryException 

  could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')  

  at C:\Users\Felipe\Documents\Laravel\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connection.php:671
    667▕         // If an exception occurs when attempting to run a query, we'll format the error
    668▕         // message to include the bindings with SQL, which will make this exception a
    669▕         // lot more helpful to the developer instead of just the database's errors.
    670▕         catch (Exception $e) {
  ➜ 671▕             throw new QueryException(
    672▕                 $query, $this->prepareBindings($bindings), $e
    673▕             );
    674▕         }
    675▕

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

  2   C:\Users\Felipe\Documents\Laravel\controle-series\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=laravel", "root", "", [])

João, você pode colocar seu código completo no GitHub, por favor Inclusive o .env

solução!

Bem, ao invés de lutar contra o problema, resolvi então por fim usar o MySql mesmo. Instalei ele aqui e consegui rodar o migrations. Deixa o sqlite pra lá kkk. Obrigado professor.