17
respostas

Erro ao rodar comando "vendor/bin/doctrine orm:schema-tool:create"

Já olhei dúvidas anteriores, mas mesmo assim não consegui resolver meu problema, quando rodo o comando vendor/bin/doctrine orm:schema-tool:create o terminal retorna:

! ! [CAUTION] This operation should not be executed in a production environment! !

Creating database schema...

In ToolsException.php line 34:

Schema-Tool failed with Error 'An exception occurred in driver: could not find driver' while executing DDL: CREATE TABLE Aluno (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, nome VARCHAR(255) NOT NULL)

In AbstractSQLiteDriver.php line 70:

An exception occurred in driver: could not find driver

In PDOConnection.php line 31:

could not find driver

In PDOConnection.php line 27:

could not find driver

orm:schema-tool:create [--dump-sql]

Já mudei o nome do arquivo para php.ini e retirei o ponto e vírgula das linhas :

extension_dir = "ext" e extension=pdo_sqlite

o resultado dos comandos php --ini é:

Configuration File (php.ini) Path: C:\WINDOWS

Loaded Configuration File: C:\Users\gabri\Documents\interpretador_php\php.ini

Scan for additional .ini files in: (none)

Additional .ini files parsed: (none)

e para php -m é:

[PHP Modules]

bcmath

calendar

Core

ctype

curl

date

dom

filter

hash

iconv

json

libxml

mbstring

mysqlnd

openssl

pcre

PDO

Phar

readline

Reflection

session

SimpleXML

SPL

standard

tokenizer

wddx

xml

xmlreader

xmlwriter

zip

zlib

[Zend Modules]

neste último reparei que a pdo foi carregada mas pdo_sqlite n mesmo estando descomentado no php.ini. O devo fazer?

17 respostas

Olá, Augusto. Muito estranho...

Na pasta onde você extraiu o PHP, existe a pasta ext? Se sim, existe o arquivo pdo_sqlite.dll lá dentro?

Olá.

Sim, tem a pasta ext, mas o nome do arquivo é php_pdo_sqlite.dll de 861 kb

Fala, Augusto. Teoricamente tá tudo certo. Testa uma coisa:

Descomenta também as seguintes linhas no php.ini:


sqlite3.extension_dir="ext"    
extension=sqlite3

Me diz se funciona...

Só uma dúvida: Qual a versão do PHP que você tem instalada?

Eu estou com o mesmo erro e fiz o que pediu, mas continua com o problema. eu estou usando o PHP 7.4.2.

Guilherme, mesmo caso?

Se você digita php -m, pdo_sqlite não aparece na lista?

Aparece a lista

quando eu digito "vendor\bin\doctrine orm:schema-tool:create"

Dá esse erro.

! ! [CAUTION] This operation should not be executed in a production environment! !

Creating database schema...

In ToolsException.php line 34:

Schema-Tool failed with Error 'An exception occurred in driver: could not find driver' while executing DDL: CREATE TABLE Aluno (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, nome VARCHAR(255) NOT NULL)

In AbstractSQLiteDriver.php line 70:

An exception occurred in driver: could not find driver

In PDOConnection.php line 31:

could not find driver

In PDOConnection.php line 27:

could not find driver

orm:schema-tool:create [--dump-sql]

Me chamem no telegram pra gente tentar investigar juntos:

https://t.me/cviniciussdias

Mas, pdo_sqlite aparece na lista quando você digita php -m?

aparece isso

[PHP Modules] bcmath calendar Core ctype curl date dom filter hash iconv json libxml mbstring mysqlnd openssl pcre PDO pdo_mysql Phar readline Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zip zlib

[Zend Modules]

Opa. Achei isso aqui na documentação:

https://www.php.net/manual/pt_BR/ref.pdo-sqlite.php#ref.pdo-sqlite.installation

Teoricamente se instalar o sqlite no Windows de vocês tudo deve funcionar. Como eu uso Linux, não consigo testar isso aqui.

=/

Eu achei o problema não tinha habilitado o pdo no php.ini extension=pdo_sqlite E também tinha criado a pasta com o nome errado e ele não estava achando.

Obrigado.

Augusto, você continua com o problema?

Essa linha ( sqlite3.extension_dir="ext" ) estava sem atribuição nenhuma, ou seja, sqlite3.extension_dir=

então coloquei a atribuição e descomentei

Retirei o ; dessa linha. extension=sqlite3

ainda continuo com os mesmos erros

A versão do php é a 7.3.9

Coloca o valor ("ext") na linha, Augusto. Vê se resolve.

Ainda apresenta os mesmos erros.

Instala o SQLite baixando do sqlite.org Vê se resolv

Baixei um zip sqltools com três executáveis: sqldiff, sqlite3, sqlite_analyzer

Adicionei o caminho ao path e testei o comando sqlite3 aparentemente funcionou porque ele printou isso:

SQLite version 3.31.1 2020-01-27 19:55:54 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database.

porém ao tentar usar o comando para criar o banco com o orm ainda continua com os mesmos erros.

Augusto, me chama no telegram pra gente tentar investigar isso juntos:

https://t.me/cviniciussdias

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