Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
17
respostas

make:migration diz que está deprecated

O Comando de migration está dando um erro e dizendo que está deprecisado http://prntscr.com/n398ri

como faço para atualizar ele?

17 respostas

Fala, Bruno.

Qual a versão do seu composer e qual o conteúdo do seu arquivo composer.json?

Você editou algo mais no seu arquivo php.ini??

O que está depreciado é a diretiva track_errors que provavelmente está habilitada no seu php.ini.

Conteúdo do arquivo composer.json

{
    "type": "project",
    "license": "proprietary",
    "require": {
        "php": "^7.0.8",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "sensio/framework-extra-bundle": "^5.2",
        "symfony/console": "3.4.*",
        "symfony/dotenv": "3.4.*",
        "symfony/flex": "^1.1",
        "symfony/framework-bundle": "3.4.*",
        "symfony/maker-bundle": "^1.11",
        "symfony/orm-pack": "^1.0",
        "symfony/yaml": "3.4.*"
    },
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "paragonie/random_compat": "2.*",
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "3.4.*"
        }
    }
}

Versão composer

Composer version 1.8.4 2019-02-11 10:52:10

Bruno, você parece estar utilizando a versão 3 do Symfony, e no treinamento nós utilizamos a versão 4. Sua estrutura de pastas do Symfony está igual à minha no treinamento?

Qual foi o comando que você utilizou para criar o projeto?

Tente alterar seu composer json, utilizando estas versões:

        "sensio/framework-extra-bundle": "^5.2",
        "symfony/console": "4.2.*",
        "symfony/dotenv": "4.2.*",
        "symfony/flex": "^1.1",
        "symfony/framework-bundle": "4.2.*",
        "symfony/maker-bundle": "^1.11",
        "symfony/orm-pack": "^1.0",
        "symfony/yaml": "4.2.*"

E lá no final:

    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "4.2.*"
        }
    }

Depois de atualizar seu composer.json, rode composer update

Rodei o comando que passou na aula, mas meu composer estava desatualizado, será que foi isso?

Rodei o composer update e foi normal agora

http://prntscr.com/n3a9wo

Ainda deu erro no make:migration http://prntscr.com/n3a90h

Bruno, acho que entendi o que houve.

A primeira migration foi criada com a versão antiga do framework, e agora que está atualizado, ele está tentando lê-la e acontece um erro.

Abre suas migrations e troca o caminho Doctrine\DBAL\Migrations\AbstractMigration pra Doctrine\Migrations\AbstractMigration

Puxa, fiz a alteração mas o erro mundo, agora apresenta esse aqui

Para ficar mais fácil, coloquei meu código no github

Adiciona o : void no fim do método up. Pra indicar o tipo de retorno.

Mas pelo que to vendo, todos esses problemas estão sendo causados por ter iniciado o projeto com uma versão antiga mesmo. =/

Vê se agora isso corrige o problema.

Deu certo, gerou o arquivo, porém não criou a tabela http://prntscr.com/n3nsyl

Onde mas pode estar com problemas vc acha?

Bruno, esse comando só gera a migration. Agora é só seguir os passos da aula pra rodar (novamente) o comando que executa as migrations no banco (doctrine:migrations:migrate)

E não esquece de remover a diretiva track_errors do seu php.ini pra parar de gerar aquele warning ali. ;-)

E aí, Bruno?

Conseguiu dar continuidade?

Olá professor, tudo bem? Agora deu certo sim! Eu não tinha me ligado do comando doctrine:migrations:migrate agora ta certo.

E esse track_erros coloquei como off já, mas ele serve para monitorar que tipo de erros? e no que ele ajuda?

solução!

Ele adicionava uma variável global $php_errormsg que continha o último erro lançado pelo PHP, mas ela foi depreciada.

https://www.php.net/manual/pt_BR/errorfunc.configuration.php#ini.track-errors

Entendi!! Show valeu