1
resposta

Problema com doctrine para criar a table no Mysql

Boa noite Prezados ! Estou utilizando ubuntu para o desenvolvimento Zend framework, na video aula 02, não estou conseguindo criar a tabela no meu banco de dados Mysql . Segue os comandos que eu utilizei no terminal:

/var/www/estoqueZend/vendor/bin$ ./doctrine-module orm:schema-tool:create

Mensagem exibida no terminal: No Metadata Classes to process.

Tentei criar com outro comando segue:

/var/www/estoqueZend/vendor/bin$ doctrine orm:schema-tool:create

Mensagem exibida no terminal:

`You are missing a "cli-config.php" or "config/cli-config.php" file in your
project, which is required to get the Doctrine Console working. You can use the
following sample as a template:

<?php
use Doctrine\ORM\Tools\Console\ConsoleRunner;

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

// replace with mechanism to retrieve EntityManager in your app
$entityManager = GetEntityManager();

Dentro da pasta "autoload" tem o arquivo identificado "doctrine.local.php" conforme mencionado na aula, segue os codigos:

<?php 
return array(

  'doctrine' => array(

    'connection' => array(
      'orm_default' => array(
        'driverClass' =>'Doctrine\DBAL\Driver\PDOMySql\Driver',
        'params' => array(
          'host'     => 'localhost',
          'port'     => '3306',
          'user'     => 'root',
          'password' => 'root',
          'dbname'   => 'estoquezend',
)))));
 ?>
Arquivo Produto.php

<?php

namespace Estoque\Entity;

use Doctrine\ORM\Mapping as ORM;

/**ORM\Entity*/

class Produto {

    /**
    *@ORM\ID
    *@ORM\GeneratedValue(strategy='AUTO')
    *@ORM\Column(type='integer')
    */

    private $id;

    /**
    *@ORM\Column(type='string')
    */

    private $nome;

    /**
    *@ORM\Column(type='decimal',scale=2)
    */

    private $preco;

    /**
    *@ORM\Column(type='string')
    */

    private $descricao;

}
?>
1 resposta

Oi Rodrigo, tudo bom?

Acredito que possa estar relacionado a algum problema de mapeamento da entidade, pois o comando foi executado corretamente, tanto que o retorno é:

No Metadata Classes to process.

Isso significa que o ORM procurou nas suas entidades mas não achou nada valido.

Tenta adicionar o @ na anotação da sua entidade produto:

// faltou o @ aqui embaixo
/**@ORM\Entity*/

class Produto {...}

Abraço!

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