Symfony + Doctrine + Postgres + Sequence com erro
Olá,
Hoje passei por um problema muito estranho com a Doctrine e o Postgres, quando eu estava configurando um projeto que vai usar como banco de dados o Postgres, até ai tudo ok, configuração de conexão, gerador de código etc.
Quando fui testar os Forms gerado pela doctrine percebi que quando eu estava inserindo un novo registro, a Doctrine gerava Doctrine_Sequence_Exception: on demand sequence “table_name_seq” could not be created.
Bom depois de quebrar a cabeça por muito tempo, levando em consideração (criação de novo banco, nova sequence etc) achei um post na net falando sobre tal bug na Doctrine com campos Serial do Postgres e uma possível solução. Testei e deu certo, então resolvi postar aqui para mais alguém que está com o mesmo erro.
O arquivo a ser alterado: /lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Sequence/Pgsql.php
Na linha onde tem:
$sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true);
$query = "SELECT NEXTVAL('" . $sequenceName . "')";
Substitua por:
//$sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true);
$query = "SELECT NEXTVAL('" . $seqName . "')";
Fazendo isso vai funcionar perfeitamente, pelo menos aqui funcionou.
Bom espero que isso ajude mais alguém.