1

データベース優先の実装で Doctrine 2.3.2 を使用してプロジェクトをセットアップしようとしています。xml とマッピングを生成した後、 orm:validate-schema を呼び出すと、マッピングは正しいがデータベースの検証に失敗することがわかります。スキーマ ツールを使用して問題の場所を特定すると、次の 2 つの問題が何度も繰り返されていることがわかります。

  1. まだ 255 になっていないすべての varchar を varchar(255) に変更します
  2. たとえば、列(A、B、C)で主キーを削除してから、同じ列を異なる順序(B、A、C)で新しい主キーを作成します

これらはどちらも、変更する意味がないように思えます。なぜ Doctrine は無意味に思える方法でスキーマを変更することを強制するのでしょうか?

データベース スキーマを変更せずにこれらの両方を解決する方法は次のとおりです。

  1. convert-mapping は、長さプロパティを id フィールドに追加するようには見えません - それを xml に追加します
  2. これは、テーブル内の列の順序と主キー内の列の順序の違いが原因のようです。主キーの順序と一致するように、xml エントリの順序を並べ替えます。

2 #1 にする必要があるのはバグだと思います - これはすぐに報告します。しかし、上記の #2 はバグですか、それとも順序を変更すると何らかの形で Doctrine のロジックが混乱するのでしょうか?

4

1 に答える 1

0

これについて考えれば考えるほど、それは見落としであり、意図的に行われたものではないと信じています。欠けているものがあると思っていましたが、これらはライブラリの問題であり、doctrine の JIRA に追加したと思います。

編集: リクエストごとのリンク

于 2013-02-11T07:18:44.540 に答える