Solucionado (ver solução)
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