Just do IT

思うは招く

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

たとえば、Bookモデルの created_at にインデックスを貼りたい場合。

$ bin/rails g migration add_index_to_books

※ファイル名は適当

マイグレーションファイル。

class AddIndexToBooks < ActiveRecord::Migration[6.0]
  def change
    add_index :books, :created_at
  end
end

マイグレートをする。

$ bin/rails db:migrate

#念のためredoができるかも確認しておく
$ bin/rails db:migrate:redo

schema.rb を見てみると、インデックスが貼られているのがわかる。

ActiveRecord::Schema.define(version: 2020_09_04_055855) do

  create_table "books", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    #インデックス
    t.index ["created_at"], name: "index_books_on_created_at"
  end
~

ワッショイ💪