データベース優先の実装で Doctrine 2.3.2 を使用してプロジェクトをセットアップしようとしています。xml とマッピングを生成した後、 orm:validate-schema を呼び出すと、マッピングは正しいがデータベースの検証に失敗することがわかります。スキーマ ツールを使用して問題の場所を特定すると、次の 2 つの問題が何度も繰り返されていることがわかります。
- まだ 255 になっていないすべての varchar を varchar(255) に変更します
- たとえば、列(A、B、C)で主キーを削除してから、同じ列を異なる順序(B、A、C)で新しい主キーを作成します
これらはどちらも、変更する意味がないように思えます。なぜ Doctrine は無意味に思える方法でスキーマを変更することを強制するのでしょうか?
データベース スキーマを変更せずにこれらの両方を解決する方法は次のとおりです。
- convert-mapping は、長さプロパティを id フィールドに追加するようには見えません - それを xml に追加します
- これは、テーブル内の列の順序と主キー内の列の順序の違いが原因のようです。主キーの順序と一致するように、xml エントリの順序を並べ替えます。
2 #1 にする必要があるのはバグだと思います - これはすぐに報告します。しかし、上記の #2 はバグですか、それとも順序を変更すると何らかの形で Doctrine のロジックが混乱するのでしょうか?