2011-07-11 4 views
3

データを移行するときにテーブル内の各レコードを一意にしたい場合make.hereはマイグレーションファイルです3つの列を追加しようとするとRails3の 'add_index'メソッドが機能しません

私はrakeタスクを実行し、私はこれにそれを変更すると、それはwork.butない見つけたとき、それが行われた
def self.up 
    create_table :rbac_mandata do |t| 
     t.integer :mandator_id 
     t.integer :mandatarius_id 
     t.integer :permission_id 

     t.timestamps 
    end 
    add_index :rbac_mandata, [:mandator_id, :mandatarius_id, :permission_id], :unique => true 
    end 

def self.up 
    create_table :rbac_mandata do |t| 
     t.integer :mandator_id 
     t.integer :mandatarius_id 
     t.integer :permission_id 

     t.timestamps 
    end 
    add_index :rbac_mandata, [:mandator_id, :permission_id], :unique => true 
    end 
+1

エラーは何ですか? –

答えて

3

生成されたインデックス名は、それが64文字を超え、おそらくですが、おそらく長すぎます。手動で名前を定義すると、このようにうまくいくでしょう...

add_index :rbac_mandata, [:mandator_id, :mandatarius_id, :permission_id], :unique => true, :name => 'my_index_name_here' 
+0

thx、Lloyd、あなたの助けを借りて私は問題を解決しました。 –

関連する問題