haveInDatabase() is not usable inside a transaction on PostgreSQL
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 42/100
調査の方向性
haveInDatabase() のエントリーポイントから開始し、トランザクション内で PostgreSQL を使用した場合の lastInsertId() の呼び出しを追跡します。名前が PostgreSQL の生成した名前と異なる主キーシーケンスを使ってケースを再現し、データベースステートメントがトランザクションを暗黙的に中断せずに成功すること、および後続のステートメントが失敗しないことを確認します。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- PHP
- スター
- 23
- フォーク
- 31
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Codeception/module-db のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
Codeception/module-db#85 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
Codeception/module-db#68 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
Codeception/module-db#67 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 38/100
Codeception/module-db#58 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
Codeception/module-db#54 ·
Codeception/module-db の issue をすべて見る
似ている issue
-
a11y admissions.uiowa.edu needs grooming SiteImprove best practice
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
Save States Menu オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
pluginsGLPI/datainjection#673 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
octobercms/october#6130 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
getgrav/grav-plugin-form#656 ·