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

Erro ao executar o comando php vendor/bin/doctrine orm:schema-tool:create

Na hora de executar o comando aparece uma sequencia de erros.

Já pesquisei em alguns fóruns anteriores aonde foi analisado pelo professor e o mesmo informou que era alguma permissão do doctrine, o professor sugeriu que fosse criado um arquivo do banco de dados (banco.sqlite), e que no meu caso ainda não funciona.

continua apresentando o erro abaixo.

!                                                                                                                 
 ! [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: SQLSTATE[HY000] [14] unable to open database f  
  ile' while executing DDL: CREATE TABLE Aluno (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, nome VARCHAR(255)  
   NOT NULL)                                                                                                      


In AbstractSQLiteDriver.php line 67:

  An exception occurred in driver: SQLSTATE[HY000] [14] unable to open database file  


In PDOConnection.php line 31:

  SQLSTATE[HY000] [14] unable to open database file  


In PDOConnection.php line 27:

  SQLSTATE[HY000] [14] unable to open database file  


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

Thayron, tudo bem contigo?

Eu abri aqui um projeto e refiz os passos do treinamento até este ponto. Acredito que o comando que falhou que você se refere seja:

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

Primeiro, imaginei que teu problema fosse não ter criado o arquivo "banco.sqlite", mas nos meus testes, percebi que independente disto, o sistema cria o arquivo.

Parece-me o problema é que que o arquivo não é aberto, pode ser que não esteja sendo encontrado. Assim, vamos tentar resolver, vamos lá meu amigo:

1) Na pasta \src\Helper\ no arquivo EntityManagerFactory.php, verifique se existe a linha abaixo, e se ela indica corretamente o caminho e nome do arquivo: O caminho deve estar correto: /var/data/banco.sqlite

        $connection = [
            'driver' => 'pdo_sqlite',
            'path' => $rootDir . '/var/data/banco.sqlite'
        ];

2) Você habilitou o driver pdo_sqlite no php.ini?

3) Experimente criar o arquivo banco.sqlite. Quero dizer crie como um arquivo texto vazio, banco.txt e renomeie para banco.sqlite. Conforme falei para mim não deu diferença, mas vale a pena testar por ai.

Me dê retorno por favor destes pontos acima. Se não for nenhum deles, continuamos vendo outros pontos do sistema.

Um abraço, bons estudos, aguardo teu retorno.

Bom dia Marcos.

Sim, já fiz todos esses procedimentos e mesmo assim apresenta os mesmos erros.

No meu caso e ambiente linux.

Todos os passos estavam corretos, faltava somente tirar o ponto e virgula do banco.sqlite aonde tirei mas mesmo assim apresenta o erro que enviei anteriormente.

O estrando e que quando coloco o comando vendor/bin/doctrine orm:info ele encontra a entidade Aluno.

[OK] Alura\Doctrine\Entity\Aluno `

Estou travado no curso pois não consigo ir adiante por causa desse erro . rsrsrs

solução!

Bom pessoal. Fiquei buscando o erro lendo o código e percebi que tinha colocado a o diretório Helper dentro do diretório Entity por isso estava dando erro.

Fica ai a dica pra quem estiver com o mesmo erro, basta fazer os 3 passos sugeridos pelo Marco Antonio e se mesmo assim tiver acorrendo erro, e só dar uma olhada nos diretórios para ver se estão com os nomes corretos ou se estão no lugar certo.

Passos Sugeridos pelo Marco Antonio

1) Na pasta \src\Helper\ no arquivo EntityManagerFactory.php, verifique se existe a linha abaixo, e se ela indica corretamente o caminho e nome do arquivo: O caminho deve estar correto: /var/data/banco.sqlite

$connection = [ 'driver' => 'pdo_sqlite', 'path' => $rootDir . '/var/data/banco.sqlite' ];

2) Você habilitou o driver pdo_sqlite no php.ini?

3) Experimente criar o arquivo banco.sqlite. Quero dizer crie como um arquivo texto vazio, banco.txt e renomeie para banco.sqlite. Conforme falei para mim não deu diferença, mas vale a pena testar por ai.

Meu erro

4) Verifique se os diretórios estão com o nomes corretos e se estão nos lugares corretos.

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