Rails索引:添加:btree索引类型到迁移

时间:2018-01-19 16:30:06

标签: ruby-on-rails postgresql b-tree

我正在试图弄清楚如何运行将B-Tree索引类型添加到索引的迁移。

我尝试运行rails g migration add_index_to_recipes,这给了我一个空的迁移:

class AddIndexToRecipes < ActiveRecord::Migration[5.0]
  def change
  end
end

然后我像这样修改了迁移:

class AddIndexToRecipes < ActiveRecord::Migration[5.0]
  def change
    add_column :recipes, :user_id, :integer
    add_index :recipes, :user_id, using: :btree
  end
end

然后我运行了rails db:migrate但是在架构中仍然没有索引类型。 迁移运行正常,但我的架构仍然如下所示:

create_table "recipes", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer "user_id"
    t.index ["user_id"], name: "index_recipes_on_user_id"
  end

我希望它看起来像这样:

create_table "recipes", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.integer "user_id"
    t.index ["user_id"], name: "index_recipes_on_user_id", using: :btree
  end

这里已经提出了类似的问题,但到目前为止我一直无法提出解决方案。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我确定您已经解决了这个问题,但是对于其他在这里找到解决方法的人,由于冗余-https://github.com/rails/rails/pull/27981

,这似乎已从架构生成中删除

希望这会有所帮助。