テーブル定義を変更
適応バージョン
- 2.1.0
- 2.2.1
- 2.3.2
- 2.3.8
- 3.0.0
- 3.0.5
- 3.0.7
- 3.0.9
- 3.1.0
- 3.2.3
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.2.1
- 7.0.0
説明
テーブル定義を変更
使い方
change_table(テーブル名 [, オプション]) do |t|
t.メソッド名(データ型) カラム名
end
オプション
オプション | 説明 | デフォルト値 |
---|---|---|
:bulk | 変更内容を1つのALTER TABLEにまとめるか | false |
使用できるメソッド
メソッド名 | 説明 |
---|---|
index | インデックス |
change | カラムを変更 |
change_default | カラムのデフォルト値を変更 |
column | カラムの追加 |
rename | カラムの名前を変更 |
timestamps | タイムスタンプを追加 |
belongs_to | 関係を追加 |
remove | カラムを削除 |
remove_references | リファレンスの削除 |
remove_index | インデックスの削除 |
remove_timestamps | タイムスタンプの削除 |
references | 外部キーを追加 |
データ型
型 | 説明 |
---|---|
string | 文字列 |
text | 長い文字列 |
integer | 整数 |
float | 浮動小数 |
decimal | 精度の高い小数 |
datetime | 日時 |
timestamp | より細かい日時 |
time | 時間 |
date | 日付 |
binary | バイナリデータ |
boolean | Boolean型 |
例
pagesテーブルにtext型のmemoを追加、titleにインデックスを設定
change_table :pages do |t|
t.text :memo
t.index :title
end
カラムの追加
change_table(:suppliers) do |t|
t.column :name, :string, limit: 60
end
2つのカラムの追加
change_table(:suppliers) do |t|
t.integer :width, :height, null: false, default: 0
end
タイムスタンプを追加
change_table(:suppliers) do |t|
t.timestamps
end
外部キーを追加
change_table(:suppliers) do |t|
t.references :company
end
複数カラムの削除
change_table(:suppliers) do |t|
t.remove :company_id
t.remove :width, :height
end
インデックスを削除
change_table(:suppliers) do |t|
t.remove_index :company_id
end