- # Ruby入門 > Ruby on Rails
マイグレーション(rake db:migrate)の確認・Railsカラム生成メソッドとMySQLデータ型の対応表
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
Railsでは、scaffold(スキャフォールド)がとても便利な機能です。CakePHPでも同じ機能がありましたね。
scaffoldとは土台、足場などの意味で、Railsにおいてモデルのクラス名を決定し、以下のコマンドを実行すると、scaffoldが行われ各種ファイルが自動生成されます。
ruby script/generate scaffold hoge name:string account:string
このコマンドにおいては、scaffoldに続くhogeがモデル名となります。
「name:string account:string」は、「DBテーブルのカラム名:データ型」を引数で指定します。
参考:Ruby on Railsのデータベースとモデルクラス・MVCの対応関係
DBテーブルの「カラム名:データ型」を指定して、scaffoldしてやるとマイグレーションファイルも自動で生成されます。
マイグレーションにより、DBのテーブル・カラムを新たに作成したり、元に戻したりという作業が楽になります。
ためしに、以下のマイグレーションファイルを手動で作成し、マイグレーションを実行して(「rake db:migrate」)、DBカラムの実際のデータ型を確認してみました。
Rails2.0からは、カラムのデータ型を指定するのにシンボルの代わりに、メソッドとしても使えるようになっています。
class CreateTest < ActiveRecord::Migration def self.up create_table :test do |t| t.string :test_string t.text :test_text t.integer :test_integer t.float :test_float t.decimal :test_decimal t.datetime :test_datetime t.timestamp :test_timestamp t.time :test_time t.date :test_date t.binary :test_binary t.boolean :test_boolean end end def self.down drop_table :test end end
「t.○○」の○○の部分がRailsによるカラムのデータ型を指定するメソッド名で、引数として「:test_string」と与えるのがカラム名となります。
Rails1.2までは、「t.string :test_string」は、「t.column :test_string, :string」とcolumnメソッドで、カラム名とデータ型をシンボル引数で渡していたようです。
上記のマイグレーションから確認できたデータベースのRailsのシンボル指定と、MySQLテーブルのカラムのデータ型との対応をまとめておきます。
Railsが表すカラムのデータ型と、実際のMySQLのデータ型がどのように対応しているのか。
MySQLデータベースでのRailsシンボルとデータ型の対応
Railsのメソッド名 | カラムのデータ型
string | varchar(255)
text | text
integer | int(11)
float | float
decimal | decimal(10,0)
datetime | datetime
timestamp | datetime
time | time
date | date
binary | blob
boolean | tinyint(1)
Railsのメソッド名と実際に生成されるカラムのデータ型では、以下のデータ型の名前が異なっているので注意です。
string | varchar(255)
integer | int(11)
binary | blob
boolean | tinyint(1)
- - 関連記事 -
- scaffoldで生成されるviewテンプレート(templates)を日本語表示に変更する
- Ruby on RailsのSQL文をdevelopment.logで確認
- Ruby on Railsのデータベースとモデルクラス・MVCの対応関係
- environment.rbを変更したらサーバー再起動
- NetBeansでのRoR開発手順
- Rails2.0でデータベースの文字化け対策(InstantRails-2.0-win)
- Ruby on Rails ことはじめ