我正在尝试在一个新表上创建一个索引,该索引需要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::Error: 不正确的前缀键;使用的密钥部分不是字符串,使用的长度比密钥部分长,或者存储引擎不支持唯一前缀密钥: CREATE UNIQUE INDEX `index_whitelisted_ips_on_agency_id_and_ip` ON `whitelisted_ips` (`agency_id`(15), `ip`(15))
因为它试图将长度放在整数字段上。任何帮助,将不胜感激。