Ответ 1
Удалите старый индекс и добавьте его снова с новым ограничением:
def change
remove_index :editabilities, [:user_id, :list_id]
add_index :editabilities, [:user_id, :list_id], unique: true
end
Как я могу добавить ограничение unique: true
к уже существующему индексу в базе данных Rails?
Я попытался выполнить миграцию
def change
add_index :editabilities, [:user_id, :list_id], unique: true
end
но миграция завершается с ошибкой, подобной этой.
Название индекса 'index_editabilities_on_user_id_and_list_id' на столе "редактируемые возможности" уже существуют
Я использую rails4 и postgresql.
Удалите старый индекс и добавьте его снова с новым ограничением:
def change
remove_index :editabilities, [:user_id, :list_id]
add_index :editabilities, [:user_id, :list_id], unique: true
end
Более быстрый способ с использованием add_index_options:
def change
add_index_options :editabilities, [:user_id, :list_id], unique: true
end