Railsのマイグレーションのデータ型とMySQLのデータ型の対応
Rails 2.3.5で、下記を実行。(実際は一行)
> ruby script/generate model test binary_col :binary boolean_col :binary date_col :date datetime_col :datetime float_col :float integer_col :integer string_col :string text_col :text timestamp_col :timestamp
結果
mysql> desc tests; +---------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+---------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | binary_col | blob | YES | | NULL | | | boolean_col | tinyint(1) | YES | | NULL | | | date_col | date | YES | | NULL | | | datetime_col | datetime | YES | | NULL | | | decimal_col | decimal(10,0) | YES | | NULL | | | float_col | float | YES | | NULL | | | integer_col | int(10) | YES | | NULL | | | string_col | varchar(255) | YES | | NULL | | | text_col | text | YES | | NULL | | | time_col | time | YES | | NULL | | | timestamp_col | datetime | YES | | NULL | | | created_at | datetime | YES | | NULL | | | updated_at | datetime | YES | | NULL | | +---------------+---------------+------+-----+---------+----------------+
- マジックカラム(id, created_at, updated_at)
- datetimeもtimestampも、MySQLのdatetimeに関連づいている。
- booleanは、tinyint(1)に関連づいている。
- varcharのデフォルトは255桁。
- idは、11桁。
※MySQLでは、秒未満を記憶できない。