2011年3月24日木曜日

symfonyを学習中 Vol.02

symfonyにデータベースの設定をしてみる。

基本的には、教えていただいたサイトの
http://www.symfony.gr.jp/docs/symfony1-docs/jobeet/ja/
を参考に実施。ORMはDoctrineを使用。
手順はバラバラにやってます。

Configを設定
symfony configure:database "mysql:host=[サーバーアドレス];dbname=[DB名]" [ユーザー名] [DBのパスワード]
DBを作成
symfony doctrine:build-db
おお!DBが出来てる!すごいすごい! テーブルスキーマの作成をする。 config/doctrine/schema.ymlを手動で編集する。 今回は簡単なユーザーマスタを作成。 テーブルは下記のような感じ ・ユーザーID ・パスワード ・ユーザー名 ・削除フラグ ・登録日時 ・更新日時 config/doctrine/schema.ymlの中身
MstUser: tableName: MstUser options: charset: utf8 columns: user_id: type: string(255) primary: true password: type: string(255) notnull: true user_name: type: string(255) notnull: true delete_flg: type: char(1) default: 0 notnull: true actAs: Timestampable: { }
下記部分が、登録日と更新日をsymfonyが管理してくれるらしい。 (自動でカラムが追加される。) --------------------------------- actAs: Timestampable: { } --------------------------------- 下記を入れないと、UTF8にならなかった。 (他に方法がありそうな感じ) --------------------------------- options: charset: utf8 --------------------------------- モデルを作成
symfony doctrine:build --model
下記、ファイルが作成される。
lib/model/doctrine/MstUser.class.php lib/model/doctrine/MstUserTable.class.php lib/model/doctrine/base/BaseMstUser.class.php
SQLを作成
symfony doctrine:build --sql
下記、ファイルが作成される。
data/sql/schema.sql
中身を見てみると
CREATE TABLE MstUser (user_id VARCHAR(255), password VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, delete_flg CHAR(1) DEFAULT '0' NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(user_id)) DEFAULT CHARACTER SET utf8 ENGINE = INNODB;
CREATE文が作成されている。 また、created_at/updated_atも定義されている。 SQLを実行してテーブルを作成
symfony doctrine:insert-sql

なんだか便利だけど、なれるまでかかりそう。

1 件のコメント:

  1. ビルドをするとoptions属性は消えるので、注意が必要なようです

    返信削除