2011-07-11 4 views
6

私は、ZendアプリケーションでDoctrine 1.1.4からDoctrine 2.0.6にアップグレードしています。私はDoctrine 2コマンドラインツールをインストールしました。Doctrine 2をデータベースから直接使用してモデルクラスを生成することは可能ですか?

Doctrine 1.1.4では、モデルクラスを(Doctrine :: generateModelsFromDb()を使用して)データベースから直接生成しましたが、これはDoctrine 2で可能ですか、それとも 'マッピング'プロセスを経なければなりませんか?テーブルのDocBlock Annotations、XMLまたはYAML構造を提供します。

Doctrine 2に 'setAutoGenerateProxyClass'オプションがあるので、私はこれが最初からプロキシクラスを生成するという印象を受けました。

ヘルプを評価してください。

答えて

6

プロクシークラスを自動生成するというのは、基本的にDoctrine 2がgenerate-proxiesを使って手動で生成するのではなく、あなたのエンティティに対して自動的に "プロキシクラス"を生成することを意味します。プロキシは、エンティティに関係があり、遅延ロードする必要があるときに使用されます。これが唯一の出発点として使用することを推奨していることを念頭に置いて

php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml 

ベア:

データベースからマッピング情報を生成するには、変換マッピングを使用することができます。データベースドライバは、可能なすべてのオプションの組み合わせのマッピングを正しく生成することができないので、一度これを実行してから、自分でマッピングを作成してください。

あなたが生成されたエンティティを取得したい場合は、ドライバーとして「注釈」を使用することができますDoctrine 2 manual, "Reverse Engineering the database"

3

を参照してください:

php doctrine orm:convert-mapping --from-database annotation generatedModels 
関連する問題