1
resposta

Doctrine getTableName com schema

Boa tarde! Gostaria de saber se existe uma maneira de pegar o nome da tabela com schema, pois estava usando o MySQL e resolvi migrar para Postgres, mas quando criei um outro esquema que não seja public quebrou aplicação por causa em SQL mais complexo utilizei: $this->om->getClassMetadata(Aluno::class)->getTableName(); para pegar a tabela, o que pensei que ao fazer a classe como :

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Aluno
 * @ORM\Table(schema="acad")
 * @author leslie
 */
class Alunoimplements \JsonSerializable
{
...
}

E uma preocupação seria perder a portabilidade ao definir o tipo de banco.

1 resposta

Olá, Lesliê.

Vamos por partes... Primeiro, esse seu SQL, você pode migrar pra uma DQL. Assim não precisa buscar o nome da tabela, e pode buscar pelo nome da entidade.

Segundo, o atributo schema funciona para todos os bancos, e não vai perder a portabilidade. A diferença é que em PostgreSQL e Oracle realmente serão utilizados schemas. Nos demais bancos, um prefixo será adicionado às tabelas se não me engano.

:-D

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