我使用了rails_best_practises gem,它通过这个警告回复给我:
/../db/schema.rb:65 - always add db index (comments => [user_id])
因此在db / schema.rb中,第65行显示了注释表的模式。
create_table "comments", force: true do |t|
t.string "commenter"
t.text "body"
t.integer "post_id"
t.string "email"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
那么它要求的是添加一个索引(某物),如下所示?
add_index "comments", ["user_id"], name: "index_comments_on_user_id", using: :btree
如果是这样,当我创建一个新的rails迁移来完成此操作时,迁移是否会像那样?
def change
add_index :comments, :user_id
end
答案 0 :(得分:2)
来自 Guides
如果您想在新列上添加索引,可以这样做 井
因此,您应该这样做以生成添加索引的迁移文件。
rails generate migration AddIndexToComments user_id:integer:index
这将产生这样的迁移文件
class AddIndexToComments < ActiveRecord::Migration
def change
add_index :comments, :user_id
end
end