2016-11-22 25 views
1

私のテーブルに既に存在する列にインデックスを追加しようとしています。追加インデックス移行移行の代わりに列を追加

私は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 

されていません?ありがとう。

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

答えて

1

Railsは、以下で生成された移行は、単にインデックス

編集のためのコンテンツでの移行を自動生成しませんインデックスを追加する適切なコマンドがない場合は、追加する適切なインデックスを使用して生成されたファイルを編集できます。 changeの機能では、あなたはフォローする必要があります。

def change 
    add_index :product_images, :item_id 
end 
+0

おかげさまであなたの答えはaccepetedでしたが、そういう公式な文書がありますか、または「Railsはインデックス用のコンテンツだけで自動移行を自動生成しません」というリンクがあります。 –

1

後、インデックスの移行ファイルを生成するためのコマンドです:

bundle exec rails generate migration AddIndexesToProductImages item_id:integer:index 

関連する問題