J'ai créé une table en utilisant la migration suivante:
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
J'ai essayé de supprimer la contrainte avec les éléments suivants:
class FixProfilePic < ActiveRecord::Migration
def change
change_column :profile_pictures, :picture_id, :integer, unique: false
end
end
J'obtiens toujours une erreur de violation de contrainte unique si j'essaie d'utiliser le même image_id à plusieurs endroits. Quelle est la bonne façon de supprimer la contrainte d'unicité de picture_id?
Vous devez supprimer votre index avec:
remove_index :profile_pictures, :picture_id
et ajoutez-le à nouveau avec:
add_index :profile_pictures, :picture_id
add_index: profile_pictures,: picture_id, unique: true
Mettez donc à jour votre index pour:
remove_index :profile_pictures, :picture_id
add_index :profile_pictures, :picture_id
Je suppose que c'est ça.