Я пытаюсь создать индекс для новой таблицы, который требует уникальности для адреса agency_id
(целое число) и адреса IP
(текст). Я знаю, что мне нужно указать длину индекса IP
. Но у меня проблемы с назначением длины для просто столбца IP
.
def up
create_table :whitelisted_ips do |t|
t.integer :agency_id
t.text :ip
t.timestamps
end
add_index :whitelisted_ips, [:agency_id, :ip], unique: true, length: 15
end
Этот код возвращает ошибку
Mysql2 :: Ошибка: неверный префиксный ключ; используемая ключевая часть не является строкой, используемая длина больше, чем ключевая часть, или механизм хранения не поддерживает уникальные префиксные ключи: CREATE UNIQUE INDEX `index_whitelisted_ips_on_agency_id_and_ip` ON` whitelisted_ips` (`agency_id` (15), `ip` (15))
потому что он пытается поместить длину в целочисленное поле. Любая помощь будет оценена.