添加索引迁移添加列而不是迁移

时间:2016-11-22 09:06:30

标签: ruby-on-rails ruby-on-rails-3 migration

我正在尝试将索引添加到我的表中已存在的列。

我想在product_images表

上的item_id上添加索引
bundle exec rails generate migration AddIndexToProductImages item_id:integer:index

但我在迁移文件中看到的代码是

class AddIndexToProductImages < ActiveRecord::Migration
  def change
    add_column :product_images, :item_id, :integer
  end
end

不确定是什么导致这种情况,任何人都可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:1)

Rails不会使用仅用于索引的内容自动生成迁移

使用以下命令编辑生成的迁移:

class AddIndexToProductImages < ActiveRecord::Migration
  def change
    add_index :product_images, :item_id
  end
end

答案 1 :(得分:1)

以下是生成索引迁移文件的命令:

bundle exec rails generate migration AddIndexesToProductImages item_id:integer:index

如果没有正确的命令来添加索引,您可以使用要添加的相应索引编辑生成的文件。您必须在change函数中打字。

def change
  add_index :product_images, :item_id
end