Step by Step Ruby on Rails

Ruby on Railsで実際にWebサイトを構築する手順をまとめています。

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

作成済みのテーブルのカラムに対し、ユニークユニークインデックスを追加する方法です。
 
ここでは、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