7
respostas

Erro ao executar - vendor\bin\doctrine-migrations - no cmd

Quando insiro a linha de comando no cmd e clico no enter, aparece um Fatal error dizendo que o arquivo cli-config.php deve retornar uma instância de "Doctrine\Migrations\DependencyFactory".

7 respostas

Fala, Alexandre.

Você pode postar o conteúdo de cli-config.php e um print com o erro, por favor?

Olá!

Estou recebendo o mesmo erro.

Conteúdo de cli-config.php:

<?php

use Alura\Doctrine\Helper\EntityManagerFactory;
use Doctrine\ORM\Tools\Console\ConsoleRunner;

// replace with file to your own project bootstrap
require_once __DIR__ . '/vendor/autoload.php';

// replace with mechanism to retrieve EntityManager in your app
$entityManagerFactory = new EntityManagerFactory();
$entityManager = $entityManagerFactory->getEntityManager();

return ConsoleRunner::createHelperSet($entityManager);

Erro:

Fatal error: Uncaught RuntimeException: Configuration file "/Users/thibook/workspace/estudos/alura-php/doctrine/cli-config.php" must return an instance of "Doctrine\Migrations\DependencyFactory" in /Users/thibook/workspace/estudos/alura-php/doctrine/vendor/doctrine/migrations/lib/Doctrine/Migrations/Tools/Console/ConsoleRunner.php:73
Stack trace:
#0 /Users/thibook/workspace/estudos/alura-php/doctrine/vendor/doctrine/migrations/bin/doctrine-migrations.php(41): Doctrine\Migrations\Tools\Console\ConsoleRunner::findDependencyFactory()
#1 /Users/thibook/workspace/estudos/alura-php/doctrine/vendor/doctrine/migrations/bin/doctrine-migrations.php(44): Doctrine\Migrations\{closure}()
#2 /Users/thibook/workspace/estudos/alura-php/doctrine/vendor/doctrine/migrations/bin/doctrine-migrations(8): require('/Users/thibook/...')
#3 {main}
  thrown in /Users/thibook/workspace/estudos/alura-php/doctrine/vendor/doctrine/migrations/lib/Doctrine/Migrations/Tools/Console/ConsoleRunner.php on line 73

Thiago, pelo erro, você está utilizando a versão 3 das migrations que foi lançada há pouquíssimo tempo (semana passada, se não me engano).

Aqui nesse link, aparentemente, tem explicações detalhadas sobre o problema: https://github.com/doctrine/migrations/issues/986

Me diz se você conseguiu resolver com a solução proposta lá. :-)

Estou com o mesmo problema, tentei a solução sugerida e fui seguindo a documentação, mas ele pede para alterar um arquivo externo ao projeto, daí fiquei na dúvida se estava realmente no caminho certo.

https://www.doctrine-project.org/projects/doctrine-migrations/en/latest/reference/configuration.html#advanced

Podia me dizer qual seria a melhor saída?

Fala, Thyago. Não entendi bem. Que arquivo externo ele pede pra alterar? Ele só diz pra alterar o cli-config.php.

Então Vinícios, quando eu altero o cli-config.php ele além de fazer as importações necessárias pede a implementação de uma interface dentro do Configuration.php, eu mandei implementar a interface (ele deve deixar uma implementação genérica lá que lança uma exceção).

Ele retorna algo assim:

Fatal error: Class Doctrine\ORM\Configuration contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Doctrine\Migrations\Configuration\Migration\ConfigurationLoader::getConfiguration) in D:\Alura\PHP\doctrine-alura\vendor\doctrine\orm\lib\Doctrine\ORM\Configuration.php on line 56

Bem... eu irei seguir o curso e baixar a versão do projeto que tem disponível na próxima aula, mas seria interessante adaptar para ou deixar uma notificação para baixar a versão específica do migrations deste treinamento.

Fala Thiago.

Aparentemente existe um pull request pra corrigir o bug, então assim que ele for merged esse problema não vai existir. Acho que o melhor por agora é realmente usar a versão anterior do pacote de migrations pra não se prender a esses detalhes. :-)

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