カラムのデータ型
string
: 文字列text
: テキストinteger
: 整数float
: 浮動小数点decimal
: 数値datetime
: 日時timestamp
: タイムスタンプtime
: 時刻date
: 日付binary
: バイナリboolean
: 真偽値
参考:
rails generate migration コマンドまとめ – Qiita
datetime 型
参考:
日付や時刻のカラム名を命名規則に合わせよう 翻訳 | TechRach
Postgresql で Date / Datetime 型のカラムから “年・月・日” などでデータを抽出する – Qiita
find_by_sql で datetime カラムの値を取り出す書き方 – teratail
timestamp 型
参考:
Timestamp in Epoch instead of DateTime Format – Stack Overflow
time 型
参考:
Rails で DB の Time 型を扱う | おもしろ web サービス開発日記
日時を表す型
参考:
どうして rails では timestamp ではなく datetime を created_at などに利用するのですか? – スタック・オーバーフロー
Date, Time, DateTime in Ruby and Rails | Tech Notes from Steven
In Ruby on Rails, what’s the difference between DateTime, Timestamp, Time and Date? – Stack Overflow
boolean
デフォルト値を false
にして、NULL
を禁止する
add_column :responses, :has_error, :boolean, default: false, null: false
参考:
Boolean 型のカラムを追加するときは必ずデフォルト値を設定しよう – Qiita
Rails でのブール型 (Boolean) の扱い | LukeSilvia’s diary
tinyint(1) が true, false なのは Rails の世界 | hatappi.blog
真偽値の判定に、tinyint(1) を使うか、bool, boolean 型を使うか、bit(1) を使うか、enum を使うか | ぽひゅっとメモ
Rails で truthy / falsy な文字列を Boolean 型に変換する | kenju’s blog
Avoid the Three-state Boolean Problem | thoughtbot Blog
What is the proper way of adding a default boolean value that works in MySQL? – Stack Overflow
Rails migration add default not null properties to existing boolean field – Stack Overflow
Ruby true, false, or nil – Stack Overflow
decimal
参考:
decimal カラムをデフォルトで作成すると小数点以下が0桁になるから気をつけよう – Qiita
マイグレーションで decimal 型の精度 (桁数) を指定 | EasyRamble
Rails の migration ファイルで decimal 型のカラムを作成する | 僕は発展途上技術者
created_at / updated_at
参考:
ActiveRecord の timestamps (created_at / updated_at) の実装を読んでみた | EasyRamble
Rails の timestamps カラム (created_at, updated_at) と別に日時カラムを作る理由が分からん | アジャイル SE の憂鬱
Timestamp
参考: