Symfony schema.ymlの抽象表現
PHPのWEBアプリケーションフレームワークSymfonyでORマッピングを実現するPropel。Ruby on Railsのmigrateと同じようにSymfonyではschema.ymlというファイルでモデルの項目を指定できます。
この表現を毎回調べている気がするのでschema.ymlでの指定可能な表現をpropel-build-schemaを実行して調べてみました。左のカラムがmysqlで指定した型、右のカラムはpropel-build-schemaタスクを実行した結果です。
| mysql | 抽象表現(schema.yml) |
|---|---|
| varchar | VARCHAR |
| tinyint | TINYINT |
| text | LONGVARCHAR |
| date | DATE |
| smallint | SMALLINT |
| mediumint | SMALLINT |
| int | INTEGER |
| bigint | BIGINT |
| float | FLOAT |
| datetime | TIMESTAMP |
| timestamp | TIMESTAMP |
| time | TIME |
| year | INTEGER |
| char | CHAR |
| tinybolb | BINARY |
| tinytext | VARCHAR |
| blob | VARBINARY |
| mediumbob | VARBINARY |
| mediumtext | LONGVARCHAR |
| longblob | VARBINARY |
| longtext | LONGVARCHAR |
| enum | CHAR |
| set | CHAR |
| bool | TINYINT |
| decimal | DECIMAL |
ちなみに生のschema.ymlは以下の通り。フィールド名は、”my_” + MySQLの型名です。
Symfony Bookに書いている指定方法よりちょっと冗長なのは一度xmlにしてからymlにしているからっぽい。
---
propel:
sample:
my_varchar:
type: VARCHAR
my_tinyint:
type: TINYINT
my_text:
type: LONGVARCHAR
my_date:
type: DATE
my_smallint:
type: SMALLINT
my_mediumint:
type: SMALLINT
my_int:
type: INTEGER
my_bigint:
type: BIGINT
my_float:
type: FLOAT
my_datetime:
type: TIMESTAMP
my_timestamp:
type: TIMESTAMP
my_time:
type: TIME
my_year:
type: INTEGER
my_char:
type: CHAR
my_tinybolb:
type: BINARY
my_tinytext:
type: VARCHAR
my_blob:
type: VARBINARY
my_mediumbob:
type: VARBINARY
my_mediumtext:
type: LONGVARCHAR
my_longblob:
type: VARBINARY
my_longtext:
type: LONGVARCHAR
my_enum:
type: CHAR
my_set:
type: CHAR
my_bool:
type: TINYINT
required: true
default:
my_decimal:
type: DECIMAL
size: 4
scale: 3
Posted at Sunday, June 24th, 2007comment (0) | trackback | category: php, programming
Read More
Related Reading:


