twitter sns クチコミ comments neta

2007/09/25 22:48:46

データベースの準備

rhaco修行シリーズ!


project.xmlを編集する


ログインするにもまずはユーザー情報が必要ですね!
rhacoではDBの定義をsetup/project.xmlに記述します。SQLなんて書かなくていいんです。全部rhacoがやってくれます。
書いてしまえば、setup画面でテーブルに対応するクラスなどが自動生成されます。
データベースの構造は、出来るだけCakePHPのやつと似せてみましたが、複合キーでの制限とか出来るのかどうかわかりませんでした。
こんなかんじ。
<project rhacover="1.3.1">
    <database name="rhacosns" renew="true">
        <table name="user" admin="true">
            <column name="id" type="serial" />
            <column name="name" type="string" size="50" require="true" />
            <column name="email" type="email" unique="true" require="true" />
            <column name="password" type="string" require="true" />
            <column name="profile" type="text" require="true" />
            <column name="created" type="timestamp" default="sysdate" />
            <column name="modified" type="timestamp" default="sysdate" />
        </table>
        <table name="diary" admin="true">
            <column name="id" type="serial" />
            <column name="user_id" type="integer" require="true" reference="user.id" />
            <column name="title" type="string" size="100" require="true" />
            <column name="body" type="text" require="true" />
            <column name="created" type="timestamp" default="sysdate" />
            <column name="modified" type="timestamp" default="sysdate" />
        </table>
        <table name="friend" admin="true">
            <column name="id" type="serial" />
            <column name="user_id" type="integer" require="true" reference="user.id" />
            <column name="friend_user_id" type="integer" require="true" reference="user.id" />
            <column name="status" type="boolean" default="0" />
            <column name="created" type="timestamp" default="sysdate" />
            <column name="modified" type="timestamp" default="sysdate" />
        </table>
    </database>
</project>

project.xmlの書き方はこのへんにあります


DBを生成する


project.xmlを設定したら、setup画面にアクセスします。
そうすると、DBの項目が増えてるはずです。
今回はSQLiteを使ってみるので、以下のように設定しました。

ここでは、データベース管理画面にもチェックを入れておきます。
これで、生成すると、テーブルに対応したクラスがlibrary/model以下に生成されています。

同時に生成されているsetup/admin.phpにブラウザからアクセスしてみるとこんなかんじになってます。



これでとりあえず準備は完了ですね!
次回からは本格的にrhacoを使ったアプリケーション構築作業になるかな!?
// どこかでヘマしてる可能性大です!ツッコミ大歓迎><!

  • Add Comment

    name:

    comment:

    question:
    1 + 1 = ?
    answer: