una restricción restricciones relaciones referencia quitar puede los hace foreign externa errores ella eliminar desactivar consulte constraint columna clave anteriores agregar sql ruby-on-rails rails-migrations

restricción - sql restricciones



¿Cómo puedo eliminar una restricción única de una columna de base de datos en Rails? (2)

Creé una tabla usando la siguiente migración:

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

Intenté eliminar la restricción con lo siguiente:

class FixProfilePic < ActiveRecord::Migration def change change_column :profile_pictures, :picture_id, :integer, unique: false end end

Todavía obtengo un error único de violación de restricción si trato de usar el mismo picture_id en más de un lugar. ¿Cuál es la forma correcta de eliminar la restricción de unicidad de picture_id?


add_index: profile_pictures,: picture_id, unique: true

Así que actualiza tu índice a:

remove_index :profile_pictures, :picture_id add_index :profile_pictures, :picture_id

Supongo que esto es todo.


Debes eliminar tu índice con:

remove_index :profile_pictures, :picture_id

y agregarlo de nuevo con:

add_index :profile_pictures, :picture_id

ActiveRecord::Migration