Railsドキュメント

テーブルを作成

適応バージョン

説明

テーブルを作成

使い方

create_table(テーブル名, id: ID=:primary_key, primary_key: プライマリーキー=nil, force: Force=nil, オプション引数)

オプション

オプション 説明 デフォルト値
:id 主キーを自動的に追加するか true
:primary_key 主キーの名前 :id
:options テーブルオプション  
:temporary 一時テーブルとして作成 false
:force テーブルを作成する前にドロップするか false
:if_not_exists テーブルが存在するときにエラーにしない false
:as テーブル作成時に使うSQL  

利用可能なメソッド

メソッド名 説明
t.primary_key プライマリーキーを定義
t.column 指定されたテーブルに新しいカラムを追加
t.index テーブルに新しいインデックスを追加
t.rename_index インデックスの名前を変更
t.timestamps created_atとupdated_atを両方追加するメソッド
t.change データベースのカラムを変更
t.change_default カラムに新しいデフォルト値を設定
t.change_null カラムにNOT NULL制約を設定または削除
t.rename カラムの名前を変更
t.references 既存のテーブルにリファレンスを追加
t.belongs_to referencesのエイリアス
t.check_constraint チェック制約を追加
t.string String型を定義
t.text Text型を定義
t.integer Integer型を定義
t.bigint Bigint型を定義 
t.float Float型を定義
t.decimal Decimal型を定義 
t.numeric Numeric型を定義
t.datetime Datetime型を定義
t.timestamp Timestamp型を定義
t.time Time型を定義
t.date Date型を定義
t.binary Binary型を定義
t.boolean Boolean型を定義
t.foreign_key テーブルに外部キーを追加
t.json Join型を定義
t.virtual Virtual型を定義
t.remove テーブル定義からカラムを削除
t.remove_foreign_key 外部キーをテーブルから削除 
t.remove_references リファレンスを削除
t.remove_belongs_to remove_referencesのエイリアス
t.remove_index インデックスを削除
t.remove_check_constraint チェック制約をテーブルから削除
t.remove_timestamps テーブルからタイムスタンプ列(created_at、updated_at)を削除

テーブルの作成

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

メソッド詳細

t.primary_key

説明

プライマリーキーを定義

使い方
primary_key(名前, タイプ=:primary_key, オプション引数)
t.primary_key :id, :uuid, default: "uuid_generate_v4()"
ソースコード

t.column

説明

指定されたテーブルに新しいカラムを追加

使い方
column(カラム名, 型, index: インデックス=nil, オプション引数)
t.column(:name, :string)
ソースコード

t.index

説明

テーブルに新しいインデックスを追加

使い方
index(カラム名, オプション引数)
t.index(:name)
t.index([:branch_id, :party_id], unique: true)
t.index([:branch_id, :party_id], unique: true, name: 'by_branch_party')
ソースコード

t.rename_index

説明

インデックスの名前を変更

使い方
rename_index(インデックス名, 新しいインデックス名)
t.rename_index(:user_id, :account_id)
ソースコード

t.timestamps

説明

created_atとupdated_atを両方追加するメソッド

使い方
timestamps(オプション引数)
usersテーブルにtimestampsを設定
create_table :users do |t|
  t.timestamps
end
ソースコード

t.change

説明

データベースのカラムを変更

使い方
change(カラム名, 型, オプション引数)
オプション
オプション 説明 デフォルト値
:limit カラムの桁数を指定  
:default デフォルト値を指定  
:null NULL値を許可するか true
:precision :decimal、:numeric、:datetime、および:time型の精度を指定  
:scale :decimal、:numeric型の小数点以下の桁数  
:collation :stringまたは:textの照合順序を指定  
:comment カラムのコメントを指定。データベース管理ツールなどで閲覧が可能  
データベースのカラムを変更
t.change(:description, :text)
カラムの桁数を指定して変更
t.change(:name, :string, limit: 80)
ソースコード

t.change_default

説明

カラムに新しいデフォルト値を設定

使い方
change_default(カラム, デフォルト値)
t.change_default(:qualification, 'new')
t.change_default(:authorized, 1)
t.change_default(:status, from: nil, to: "draft")
ソースコード

t.change_null

説明

カラムにNOT NULL制約を設定または削除

使い方
change_null(カラム, NULL, デフォルト値=nil)
t.change_null(:qualification, true)
t.change_null(:qualification, false, 0)
ソースコード

t.rename

説明

カラムの名前を変更

使い方
rename(カラム名, 新しいカラム名)
t.rename(:description, :name)
ソースコード

t.references

説明

既存のテーブルにリファレンスを追加

使い方
references(カラム名 [, オプション])
オプション
オプション 説明 デフォルト値
:type カラムタイプ :bigint
:index インデックスを付与 true
:foreign_key 外部キーの制約 false
:polymorphic ポリモーフィックを付与 false
:null NULLを許可するか true
t.references(:user)
ソースコード

t.check_constraint

説明

チェック制約を追加

使い方
check_constraint(引数..)
t.check_constraint("price > 0", name: "price_check")
ソースコード

t.string

説明

String型を定義

使い方
t.string(カラム名)
t.string(:name)

t.text

説明

Text型を定義

使い方
t.text(カラム名)
t.text(:name)

t.integer

説明

Integer型を定義

使い方
t.integer(カラム名)
t.integer(:age)

t.bigint

説明

Bigint型を定義

使い方
t.bigint(カラム名)
t.bigint(:num)

t.float

説明

Float型を定義

使い方
t.float(カラム名)
t.float(:num)

t.decimal

説明

Decimal型を定義

使い方
t.decimal(カラム名)
t.decimal(:num)

t.numeric

説明

Numeric型を定義

使い方
t.numeric(カラム名)
t.numeric(:num)

t.datetime

説明

Datetime型を定義

使い方
t.datetime(カラム名)
t.datetime(:time)

t.timestamp

説明

Timestamp型を定義

使い方
t.timestamp(カラム名)
t.timestamp(:time)

t.time

説明

Time型を定義

使い方
t.time(カラム名)
t.time(:time)

t.date

説明

Date型を定義

使い方
t.date(カラム名)
t.date(:date)

t.binary

説明

Binary型を定義

使い方
t.binary(カラム名)
t.binary(:image)

t.boolean

説明

Boolean型を定義

使い方
t.boolean(カラム名)
t.boolean(:flag)

t.foreign_key

説明

テーブルに外部キーを追加

使い方
foreign_key(引数, オプション引数)
t.foreign_key(:authors)
t.foreign_key(:authors, column: :author_id, primary_key: "id")
ソースコード

t.json

説明

Json型を定義

使い方
t.json(カラム名)
t.json(:request)

t.virtual

説明

Virtual型を定義

使い方
t.virtual(カラム名)
t.virtual(:hoge)

t.remove

説明

テーブル定義からカラムを削除

使い方
remove(カラム名.., オプション引数)
t.remove(:qualification)
t.remove(:qualification, :experience)
ソースコード

t.remove_foreign_key

説明

外部キーをテーブルから削除

使い方
remove_foreign_key(外部キー.., オプション引数)
t.remove_foreign_key(:authors)
t.remove_foreign_key(column: :author_id)
ソースコード

t.remove_references

説明

リファレンスを削除

使い方
remove_reference(テーブル名, リファレンス名, foreign_key: 外部キー=false, polymorphic: ポリモーフィック=false, オプション引数)
t.remove_references(:user)
ソースコード

t.remove_index

説明

インデックスを削除

使い方
t.rremove_index(カラム名=nil, オプション引数)
t.remove_index(:user)
ソースコード

t.remove_check_constraint

説明

チェック制約をテーブルから削除

使い方
t.remove_check_constraint(引数..)
t.remove_check_constraint(name: "price_check")
ソースコード

t.remove_timestamps

説明

テーブルからタイムスタンプ列(created_at、updated_at)を削除

使い方

t.remove_timestamps(オプション引数)

t.remove_timestamps
ソースコード