Doctrine使い方まとめ - モデルとテーブルの作成
作成したスキーマファイルを元に、モデル生成とテーブル作成をします。
モデルの作成
symfony doctrine:build-model
symfony ccモデルクラスは /lib/doctrine/ 以下に生成されます。
User.class.phpがレコードクラス、UserTable.class.phpがテーブルクラスです。
ユーザスクリプトはこれらのクラスに記述します。
/lib/doctrine/generated/ 以下のファイルは自動的に更新されるので、触らないようにします。
モデルの再生成をした後は、キャッシュのクリアを忘れずに行います。
テーブルの作成
symfony doctrine:build-db app_name
build-dbの後にアプリケーション名の指定が必要です。
このタスクはすでにDB上に同名のテーブルがある場合に自動でテーブルをドロップしません。
以上でDoctrineを使ってテーブルにアクセスする準備は整いました。
次回以降、スキーマを修正して再度同じ手順を踏むには、まず既存テーブルをすべてドロップする必要がありますが、doctrine:drop-dbを行うと、テーブルのデータもすべて破棄されてしまいます。
そこで、いったんテーブルデータをダンプし、テーブルの作成、データのロードという手順を踏むことになります。
symfony doctrine:data-dump app_name dump_data.yml
symfony doctrine:drop-db --force app_name
symfony doctrine:build-all-load app_nameまず、/data/fixtures/dump_data.ymlファイルにデータがダンプされ、次にテーブルがドロップされます。
drop-dbタスクでは、テーブルを本当にドロップするかどうかをたずねられますが、--forceオプションでこの確認を無効にしています。
最後にbuild-all-loadタスクで、モデルを生成し、テーブルを作成し、ダンプしたデータを読み込みます。