マイグレーションで複数のカラムにユニークインデックスを設定

作成済みのテーブルのカラムに対し、ユニークユニークインデックスを追加する方法です。

ここでは、markersというテーブルのいくつかのカラムにユニークインデックスを追加しています。
 
:nameカラムに単独でユニークインデックスを設定し、:latと:lngの二つのカラムに対して複合のユニークインデックスを設定する例を示します。
 
①マイグレーションファイル作成
 
rails generate migration change_unique_to_markers
 
②マイグレーションファイルにカラム変更を設定

  def up
    add_index :markers, :name, unique: true
    add_index :markers, [:lat, :lng], unique: true
  end

  def down
    remove_index :markers, column: :name
    remove_index :markers, column: [:lat, :lng]
  end

 
③マイグレーション実行
 
$ rake db:migrate

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です