テーブルを作成
説明
テーブルを作成
使い方
create_table(テーブル名 [, オプション])
ブロック
create_table テーブル名 [, オプション] do |t|
t.型 カラム名 [, カラムオプション]
end
オプション
オプション | 説明 | デフォルト値 |
---|---|---|
:id | 主キーを自動生成 | true |
:primary_key | 主キーのカラムの名前 | id |
:options | テーブルオプション | |
:temporary | 一時テーブルとして作成 | false |
:force | テーブルを作成前に、既存のテーブルを削除 | false |
:as | テーブル作成時に使うSQL |
カラムオプション
オプション | 説明 | デフォルト値 |
---|---|---|
:limit | カラムの桁数 | |
:default | デフォルトの値 | |
:null | nullを許可するか | true |
:precision | 数値の桁数 | |
:scale | 小数点以下の桁数 |
カラムの型
データ方 | 説明 |
---|---|
string | 文字列 |
text | 長い文字列 |
integer | 整数 |
float | 浮動小数 |
decimal | 精度の高い小数 |
datetime | 日時 |
timestamp | より細かい日時 |
time | 時間 |
date | 日付 |
binary | バイナリデータ |
boolean | Boolean型 |
例
テーブルの作成
crate_table :products do |t|
t.string :name
end
空のカラムを禁止
create_tabe :products |t|
t.string :name, null: false
end
文字コードを指定してテーブルを作成
create_table :suppliers, options: 'ENGINE=InnoDB DEFAULT CHARSET=utf8'
主キーを指定してテーブルを作成
create_table(:objects, primary_key: 'guid') do |t|
t.column :name, :string, limit: 80
end
プライマリーキーの無いテーブルを作成
create_table(:categories_suppliers, id: false) do |t|
t.column :category_id, :integer
t.column :supplier_id, :integer
end