quarta-feira, 3 de abril de 2013

Erro na inserção de dados usando symfony 1.4, Doctrine e PostgreSQL: Doctrine_Sequence_Exception on demand sequence

Opa!

Mexendo em um projeto feito em symfony 1.4 me deparei com esse erro.
Ele é relatado no fórum legado do symfony, porém lá não possui resposta alguma e nem é possível contribuir porque a versão atual do symfony é a 2.0, e o symfony 1.x não possui mais o suporte da oficial da comunidade. De qualquer forma, é um erro simples de lidar (pelo menos foi no meu caso).

Descrição
Ao tentar inserir um registro no banco de dados PostgreSQL, ocorre o seguinte erro transcrito e adaptado:  Doctrine_Sequence_Exception on demand sequence nome_do_banco.nome_da_tabela_id_seq could not be created.

O meu arquivo schema.yml estava assim:

Nome_do_modelo:
  connection: doctrine
  tableName: nome_do_banco.nome_da_tabela
  actAs:
    Timestampable: ~
  columns:
    id: { type: integer, primary: true, sequence: nome_do_banco.nome_da_tabela_id_seq }

Até aí eu achava que não tinha nada errado, mas fuçando na internet e olhando os fontes do symfony e do Doctrine, resolvi tentar tirar a parte "_seq" do final e voilá! Funcionou perfeitamente. Assim meu schema.yml final ficou:

Nome_do_modelo:
  connection: doctrine
  tableName: nome_do_banco.nome_da_tabela
  actAs:
    Timestampable: ~
  columns:
    id: { type: integer, primary: true, sequence: nome_do_banco.nome_da_tabela_id }


Lembrar que o nome do meu modelo está no singular e o nome da tabela no PostgreSQL está no plural.

É só :)

Nenhum comentário:

Postar um comentário