Rails マイグレーションのフィールド定義データ型と MySQL・Ruby との対応表

Ruby on Rails においてマイグレーションファイルを作成する度に、マイグレーションのデータ型と MySQL でのデータ型の対応を確認するのが面倒くさいのでまとめました。

Rails 4.0.0
Ruby 2.0.0p247
MySQL 5.5.28

スポンサーリンク

確認用マイグレーション(migration)の作成

まずフィールドのデータ型を確認するためのテスト用マイグレーションを作成。datatypes というテーブルを作成するため、create_datatypes という名前のマイグレーションを作成します。

生成されたマイグレーションファイルを編集。

db/migrate/***_create_datatypes.rb

フィールドのデータ型を先に配列で定義して、Object#send を使って動的に t.integer などのメソッドを呼び出してます。コードを短く書けるので Ruby のこういうところ好きですが、通常のマイグレーションファイルは、普通に t.integer, t.string ・・・と1行ずつ定義したほうが見やすいと思います。

マイグレーション実行後テーブルを確認

マイグレートを実行。

データベースを確認。利用している MySQL のバージョンは5.5。

これで、マイグレーションのフィールドデータ型と MySQL の実際のデータ型の対応が分かりました。

マイグレーションのフィールド定義データ型と MySQL・Ruby との対応

表にまとめておきます。

マイグレーションのデータ型と MySQL・Ruby との対応表

マイグレーション MySQL Ruby
integer int(11) Fixnum
decimal decimal(10,0) BigDecimal
float float Float
string varchar(255) String
text text String
binary blob String
date date Date
datetime datetime Time
timestamp datetime Time
time time Time
boolean tinyint(1) TrueClass/FalseClass

最後に確認用のテーブルとマイグレーションを削除

テスト用に作ったデータベースの datatypes テーブルを削除。

テストで使ったマイグレーションを削除。

以上です。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!