0

いくつかのクラスを作成し、関連するテーブルを DB に生成しphp app/console doctrine:generate:entities
ますスタンドアロン (今のところ)) ですが、私のスキーマは A を C に接続する必要があります。そのため、すべてのクラスを一貫した方法で変更し、php app/console doctrine:schema:update --force.

驚いたことに、DB に変更が加えられていないことに気付きました!
これはどのように可能でしょうか?彼が何かまたは類似のものをキャッシュしたファイルをドクトリンに持っていますか?

PS: エンティティ間の関係は多対多です

4

2 に答える 2

0

いくつかの行を変更すると、次のように入力して、どのリクエストが実行されるかを確認できます。

doctrine:schema:update --dump-sql

doctrine が変更を認識しない場合は、apache を再起動するか、APC キャッシュを消去してみてください。この奇妙なバグが最後にあったとき、それは私にとってはうまくいきました。しかし、もちろん、フィールドを削除または追加すると、教義は表示されます!

于 2012-09-06T15:24:55.957 に答える
0

更新されたエンティティを使用して新しいデータベースを生成し、それらが正しいかどうかを確認しようとしましたか? これを行う簡単な方法は、parameters.iniファイルのデータベース名を変更し、データベースを生成するコンソール コマンドを再度実行することです。

app/console doctrine:database:create
app/console doctrine:schema:create

新しいデータベースが正しくない場合、エンティティに何か問題があります。それらをどのように定義していますか (YAML、XML、または注釈)? YAML を使用していますが、doctrine:generate:entities操作がうまくいかないことがあります。これが発生した場合、PHP エンティティを削除して、コマンドを再度実行する必要があります。

それ以外は、Doctrine Documentationをチェックして、所有側と逆側のルールに従って関連付けを正しく定義していることを確認してください。

于 2012-09-07T03:10:18.280 に答える