Ответ 1
Вы должны удалить свой индекс с помощью:
remove_index :profile_pictures, :picture_id
и добавьте его снова с помощью:
add_index :profile_pictures, :picture_id
Я создал таблицу, используя следующую миграцию:
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, unique: true
Поэтому обновите свой индекс до:
remove_index :profile_pictures, :picture_id
add_index :profile_pictures, :picture_id
Я предполагаю, что это все.