問題タブ [doctrine-dbal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
data-access-layer - データベース抽象化レイヤーとデータアクセスレイヤーの違いは何ですか?
私は実際に3層構造で立ち往生しています。インターネットをサーフィンしたところ、「データベース抽象化レイヤー」と「データ アクセス レイヤー」という 2 つの用語が見つかりました。
2つの違いは何ですか?
symfony - doctrine を使用したブール値としての mysql tinyint(2) の不適切なマッピング
symfony2 でデータベースをリバース エンジニアリングし、コマンドで doctrine を作成しました。
しかし、私のフィールドはtinyint(2)ではなくブール値としてマップされました。
ブール値としてマッピングされるのはなぜですか?
php - Prooph Eventstore (PDO) と Doctrine DBAL の結果、複数の接続が発生する
状況
Symfony 4.3 内のコマンドバス、イベントバス、およびイベントストアに Prooph を使用しています。すべての集約をイベントソースにする必要があるわけではないため、Doctrine DBAL を使用して単純な集約を単純に CRUD します。
特定のドメイン内で、イベントソース リポジトリまたは DBAL リポジトリのいずれかを使用するコマンド バスで構成されたコマンド/ハンドラーがあります。
このコマンドバスを CLI コマンドに挿入すると、CLI で何かを実行すると複数の db 接続が発生します。
問題
データベースを削除/作成しようとすると (元のインストールまたはテスト環境のリセットのため)、別のアクティブな接続があるため、Postgres は拒否します。
- イベントソースのリポジトリを持つすべてのコマンドを無効にしてみましたが、問題は修正されました。
- DBAL リポジトリを持つすべてのコマンドを無効にしてみましたが、問題は修正されました。
- このコマンドバスを注入しないようにしましたが、問題は修正されました。
したがって、PDO 接続を使用するサービスを DBAL 接続を使用するサービスと組み合わせて使用すると、問題が発生すると結論付けることができます。
ソリューション (失敗)
$connection->getWrappedConnection()
私が考えた解決策は、Prooph Eventstoreに Doctrine DBAL を使用することでした。明らかに、タイプヒンティングはこれを許可しません ( -interface をgetWrappedConnection()
返しますConnection
) が、実際の Doctrine PDOConnection
extends\PDO
が機能する場合は、この時点でハッキネスを受け入れます! ただし、無駄に、まだ2つの接続があります。