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

Problema no comando migrations:diff

Está aparecendo esse erro ao executar o comando vendor\bin\doctrine-migrations migrations:diff

Alguem sabe o que pode ser esse erro? E como posso resolver?

In SqlitePlatform.php line 827:
 Sqlite platform does not support alter foreign key, the table must be fully recreated using getAlterTableSQL. 
6 respostas

Aparentemente você fez alguma alteração no mapeamento do relacionamento após já ter rodado as migrations.

A sugestão mais simples que eu posso te dar é zerar todas as migrations. Consegue apagar a tabela de migrations do seu SQLite, apagar as classes de migrations e rodar o comando de novo?

Opa, professor! Vou tentar fazer de novo, e ja te aviso! Muito obrigado!

Show de bola. Fico no aguardo. :-D

Professor, acredito que seja a versão do doctrine/migrations. Tentei dar o

composer require doctrine/migrations"^2.0"

mas não baixa os pacotes. Então fui no composer.json e coloquei manualmente quq queria a versão 2.0

"doctrine/migrations":"^2.0"

Depois dei um composer update, e ele a principio atualizou o composer com os pacotes do migrations, disponibilizando os comandos no terminal.

Quando dou um vendor\bin\doctrine-migrations migrations:status, ele me retorna isso:

>> Name:Fundamentos Doctrine

>> Database Driver:                                    pdo_sqlite
>> Database Host:
>> Database Name:                                      D:\PHP\alura\doctrine\src\helper/../../var/data/banco.sqlite
>> Configuration Source:                               D:\php\alura\doctrine/migrations.php
>> Version Table Name:                                 doctrine_migration_versions
>> Version Column Name:                                version
>> Migrations Namespace:                               Alura\Doctrine\Migrations
>> Migrations Directory:                               D:\PHP\alura\doctrine\src\migrations
>> Previous Version:                                   Already at first version
>> Current Version:                                    0
>> Next Version:                                       Already at latest version
>> Latest Version:                                     0
>> Executed Migrations:                                0
>> Executed Unavailable Migrations:                    0
>> Available Migrations:                               0
>> New Migrations:                                     0 ``

Porém, quando dou o outro comando de

vendor\bin\doctrine-migrations migrations:diff,

ele até cria o banco, mas apenas com a tabela doctrine_migration_versions, sem as entidades de aluno e telefone. E não cria nenhum arquivo na pasta de Migrations.

Já quando rodo o comando

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

ele tambem cria o banco, mas com as tabelas de Aluno e Telefone, e a tabela doctrine_migration_versions. E também nao cria nenhum arquivo na pasta de Migrations, claro.

O meu migrations.php está totalmente igual à da aula.

Como disse no começo, creio que é problema no doctrine/migrations.

As entidades, para ter certeza, eu copiei exatamente igual dos arquivos que foi disponibilizado, então nao creio que seja o problema.

Espero que tenha ficado claro a situação professor! Desculpe escrever tanto rsrs, mas queria explicar todo o problema certinho.

Obrigado pela atenção!

solução!

Antes de instalar a versão 2 do doctrine migrations você removeu a versão 3? Talvez alguma coisa tenha se perdido no caminho. Enfim, faz assim:

$ composer remove doctrine/migrations
$ composer require doctrine/migrations:^2.0

Remove o arquivo SQLite do projeto e tenta criar as migrations de novo. Vê se isso resolve...

Boa tarde professor! Removi com o composer, tentei instalar a versão 2.0 e não estava dando certo.

Ai tentei a versão ^2.2, e deu certo!! Muito obrigado!