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))
整数フィールドに長さを設定しようとしているためです。どんな助けでも大歓迎です。