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

Erro ao executar comandos

Está dando esse erro para mim quando executo qualquer comando no terminal. Conseguem me ajudar?

No identifier/primary key specified for Entity "Alura\Doctrine\Entity\Aluno". Every Entity must have an identifier/primary key.

23 respostas

Fala, Márcio. Você não adicionou o id no Aluno, segundo a mensagem.

Pior que o id estava lá. Ele está dando esse erro para mim agora.

!
 ! [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 f
  ind 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

Aparentemente o pdo_sqlite não tá habilitado no seu php.ini.

Tá habilitado Vinícios.

; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
;   extension folders as well as the separate PECL DLL download (PHP 5+).
;   Be sure to appropriately set the extension_dir directive.
;
;extension=bz2
;extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

Você tem mais de uma instalação do PHP na sua máquina?

Executa php -m e vê se o pdo_sqlite tá sendo exibido lá.

Não aparece na lista.

Repetindo a pergunta, você tem mais de uma instalação do PHP na sua máquina?

Não! Somente o php 7.4.7 que está na raiz c:

A configuração extension_dir tá definida corretamente?

Configurei certinho.

O arquivo .ini que tenho que configurar é esse Arquivo INI-DEVELOPMENT (.ini-development)?

Qual a saída do comando php --ini?

Márcio, o arquivo tem que se chamar php.ini.

Esse estava sem o exe e eu descomentei e coloquei o exe. sqlite3.extension_dir = "exe"

Eu procurei na pasta onde eu extraí os arquivos php, porém, mesmo pesquisando com o ctrl+f não tem o arquivo php.ini.

Mas é esse mesmo, conferi agora.

Márcio, parece que tá rolando bastante confusão aí...

Vamos lá:

  • Encontre o arquivo php.ini-development na pasta extraída do PHP
  • Renomeie-o para php.ini
  • Descomente as seguintes linhas:
    • extension=pdo_sqlite
    • extension_dir=ext (Acredito que seja isso no Windows. Confere aí no arquivo)

Depois de todos esses passos, confere se tá tudo ok.

Persiste Vinícios.

C:\laragon\www\CursoDoctrine>vendor\bin\doctrine.bat orm:schema-tool:create

 !
 ! [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 f
  ind 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]


C:\laragon\www\CursoDoctrine>

Você tá usando Laragon? Não sei se existe algum procedimento específico necessário. Nunca usei...

https://forum.laragon.org/topic/190/sqlite-with-laragon/2

Bom dia Vinícios, atualmente eu não estou usando mais o laragon. Configurei direitinho como vc me indicou, porem o erro ainda persiste. Tanto o meu projeto com o php estão na raiz C: , as extensões estão descomentadas no arquivo php.ini também. Executei esse script phpinfo.php e, aparece none no php.ini

Loaded Configuration File (none) Scan this dir for additional .ini files (none) Additional .ini files parsed (none)

Instalei várias versões do php também, fiz de tudo, porém o erro persiste.

C:\CursoDoctrine>vendor\bin\doctrine.bat orm:info

 Found 1 mapped entities:

 [OK]   Alura\Doctrine\Entity\Aluno

C:\CursoDoctrine>vendor\bin\doctrine.bat orm:schema-tool:create

 !
 ! [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 f
  ind 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]

Márcio, sendo assim, só com uma investigação mais a fundo.

Quer me chamar no Telegram pra gente tentar bolar um acesso remoto pra ver se eu descubro algo na sua máquina?

Se quiser: https://t.me/cviniciussdias

solução!

Após acesso remoto vi que o Laragon estava sim sendo utilizado e, como falo em todos os treinamentos, isso só traz dor de cabeça e problemas de infraestrutura.

Criei o arquivo php.ini na pasta onde o Laragon pedia e agora a extensão foi carregada.

Conclusões:

  1. Você tinha sim mais de uma instalação do PHP apesar de dizer que não tinha
  2. Você experimentou na pele o que eu disse e aparentemente você duvidou: Essas ferramentas só trazem dor de cabeça e problemas de infra.

Vou encerrar o tópico já que o problema foi resolvido.

:-)