migrate
テーブルとかカラムの設定を書くやつ
nullは空の値を許さない制約(falseで制約する)。
例)t.string :name, null: false # nameの中身は空の値が許されない。
uniqueは一意性で、同じ値を許さない制約(trueで制約)。
例)add_index :users, :email, unique: true # (usersはOK)emailの同じ値を許さない。
foreign_keyは外部キーの先の値が空なのを許さない制約(trueで制約)。
例)t.references :user, foreign_key: true #userテーブルにあるuser_idが送られるの先のレコード(横の(フィールド)データ)の値が空なのを許さない。
add_indexは検索速度向上させるための各カラムのデータの保存の仕方をするようにさせる命令。
例)add_index :score, :name, :scores
因みに[]でくくるとその組み合わせで検索した時速度が上昇するようになる。
例)add_index :users [:name, :email]
注意)何でもかんでもやれば良いというものではない。この設定は検索速度が早くなる代わりに保存、更新速度が下がり、さらにデータベース容量も使うことになる。