如何在Rails数据库中为已存在的索引添加unique: true
约束?
我尝试通过
进行迁移 def change
add_index :editabilities, [:user_id, :list_id], unique: true
end
但是迁移失败并出现这样的错误。
表上的索引名称“index_editabilities_on_user_id_and_list_id” 'editabilities'已经存在
我正在使用rails4和postgresql。
答案 0 :(得分:82)
删除旧索引并使用新约束添加它:
def change
remove_index :editabilities, [:user_id, :list_id]
add_index :editabilities, [:user_id, :list_id], unique: true
end
答案 1 :(得分:-3)
使用add_index_options更快捷的方式:
def change
add_index_options :editabilities, [:user_id, :list_id], unique: true
end