次の移行を使用してテーブルを作成しました。
class CreateProfilePictures < ActiveRecord::Migration
def change
create_table :profile_pictures do |t|
t.integer :user_id, null: false
t.integer :picture_id, null: false
t.timestamps null: false
end
add_index :profile_pictures, :user_id, unique: true
add_index :profile_pictures, :picture_id, unique: true
end
end
次の方法で制約を削除しようとしました。
class FixProfilePic < ActiveRecord::Migration
def change
change_column :profile_pictures, :picture_id, :integer, unique: false
end
end
同じpicture_idを複数の場所で使用しようとすると、一意の制約違反エラーが引き続き発生します。 picture_idから一意性制約を削除する適切な方法は何ですか?
次を使用してインデックスを削除する必要があります。
remove_index :profile_pictures, :picture_id
そしてそれを再び追加します:
add_index :profile_pictures, :picture_id
add_index:profile_pictures、:picture_id、一意:true
インデックスを次のように更新します。
remove_index :profile_pictures, :picture_id
add_index :profile_pictures, :picture_id
これだと思います。