haveInDatabase() is not usable inside a transaction on PostgreSQL
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 42/100
Direção de pesquisa
Comece pelo ponto de entrada haveInDatabase() e rastreie a chamada a lastInsertId() quando PostgreSQL for usado dentro de uma transação. Reproduza o caso com uma sequência de chave primária cujo nome seja diferente do nome gerado pelo PostgreSQL e verifique se a instrução do banco de dados é executada com sucesso sem abortar silenciosamente a transação e se as instruções subsequentes não falham.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Our tables have PK sequences with different names than the ones postgres generates automatically. Because of that the lastInsertId() call inside haveInDatabase() generates a silent error.
When you use the method in a transaction, you don't see the actual error but the transaction is marked as "aborted" and you get exception and test fail on the next db statement. Without a transaction the test works fine but leaves other residues, which I hoped to clear by rollback. It took some time to debug and find the actual cause.
I did not find any warning about such limitation or previous mentions of it.
As a workaround I used INSERT .. RETURNING.
- Linguagem predominante
- PHP
- Estrelas
- 23
- Forks
- 31
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Codeception/module-db
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
Codeception/module-db#85 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
Codeception/module-db#68 · 1 comentário ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
Codeception/module-db#67 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
Codeception/module-db#58 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
Codeception/module-db#54 ·
Todas as issues de Codeception/module-db
Issues semelhantes
-
type/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
bug No Code Attached Yet
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
joomla/joomla-cms#48556 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 3 dias
-
Перевод устарел
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100